(57)【特許請求の範囲】
【請求項１】
音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す楽曲特徴量を抽出する楽曲特徴量抽出手段と、
前記音声信号から、人間にビートを感じさせる音量の変化を時系列でデータ化した情報であるアタック情報を抽出するアタック情報抽出手段と、
抽出された時系列の情報である前記アタック情報を通常の波形と見立てて基本ピッチ抽出を行うことで、楽曲において最も基本となる音の長さを示す基本ビート周期を検出する基本ビート周期検出手段と、
前記楽曲特徴量からテンポを推定し、推定された推定テンポと、検出された前記基本ビート周期とを用いて、前記テンポを決定するテンポ決定手段と、
決定された前記テンポの周期の位相と、周期とを修正し、その修正により最終的に決定されたテンポを示すビート情報を出力するビート情報出力手段と
を備える信号処理装置。
【請求項２】
前記基本ビート周期検出手段は、前記アタック情報をショートタイムフーリエ変換することにより得られる周波数におけるエネルギの強さを時系列に示す結果から検出される周期のうち、最も優位のものを前記基本ビート周期として検出する
請求項１に記載の信号処理装置。
【請求項３】
前記テンポ決定手段は、前記推定テンポと前記基本ビート周期とから、前記基本ビート周期の２のＸ倍の中からテンポを決定する
請求項１に記載の信号処理装置。
【請求項４】
前記ビート情報出力手段は、前記アタック情報に対するテンポの周期の位相を、その位相をずらしながら拍の範囲毎に楽曲全体にわたり前記アタック情報を足し合わすことで得られる合計値のうち、最も大きい合計値の得られた位相に修正する
請求項１に記載の信号処理装置。
【請求項５】
前記ビート情報出力手段は、テンポの周期を、その周期に対して十分短い所定の長さだけ縮めるか、または伸ばして、その縮められるかまたは伸ばされたテンポの周期で、テンポの周期毎に、楽曲全体にわたり前記アタック情報を足し合わすことで得られる合計値のうち、最も大きい合計値の得られた長さに修正する
請求項４に記載の信号処理装置。
【請求項６】
前記ビート情報出力手段は、テンポの周期の位相の修正と、テンポの周期の長さの修正とを、予め決められた回数繰り返すことにより、最終的なテンポを決定する
請求項５に記載の信号処理装置。
【請求項７】
音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す楽曲特徴量を抽出し、
前記音声信号から、人間にビートを感じさせる音量の変化を時系列でデータ化した情報であるアタック情報を抽出し、
抽出された時系列の情報である前記アタック情報を通常の波形と見立てて基本ピッチ抽出を行うことで、楽曲において最も基本となる音の長さを示す基本ビート周期を検出し、
前記楽曲特徴量からテンポを推定し、推定された推定テンポと、検出された前記基本ビート周期とを用いて、前記テンポを決定し、
決定された前記テンポの周期の位相と、周期とを修正し、その修正により最終的に決定されたテンポを示すビート情報を出力する
ステップを含む信号処理方法。
【請求項８】
音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す楽曲特徴量を抽出し、
前記音声信号から、人間にビートを感じさせる音量の変化を時系列でデータ化した情報であるアタック情報を抽出し、
抽出された時系列の情報である前記アタック情報を通常の波形と見立てて基本ピッチ抽出を行うことで、楽曲において最も基本となる音の長さを示す基本ビート周期を検出し、
前記楽曲特徴量からテンポを推定し、推定された推定テンポと、検出された前記基本ビート周期とを用いて、前記テンポを決定し、
決定された前記テンポの周期の位相と、周期とを修正し、その修正により最終的に決定されたテンポを示すビート情報を出力する
ステップをコンピュータに実行させるプログラム。
【請求項９】
音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す楽曲特徴量を抽出し、
前記音声信号から、人間にビートを感じさせる音量の変化を時系列でデータ化した情報であるアタック情報を抽出し、
抽出された時系列の情報である前記アタック情報を通常の波形と見立てて基本ピッチ抽出を行うことで、楽曲において最も基本となる音の長さを示す基本ビート周期を検出し、
前記楽曲特徴量からテンポを推定し、推定された推定テンポと、検出された前記基本ビート周期とを用いて、前記テンポを決定し、
決定された前記テンポの周期の位相と、周期とを修正し、その修正により最終的に決定されたテンポを示すビート情報を出力する
ステップを含む信号処理をコンピュータに実行させるプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は信号処理装置および方法、プログラム、並びに記録媒体に関し、特に、音声の信号を処理する信号処理装置および方法、プログラム、並びに記録媒体に関する。
【背景技術】
【０００２】
音声の信号である音声信号に各種の信号処理を適用する各種の信号処理装置が広く利用されている。
【０００３】
従来、再標本化部が、入力されるオーディオ信号を、オクターブの境界の周波数の２のべき乗倍のサンプリング周波数で再サンプリングし、オクターブ分割ブロックが、再標本化部から出力されるオーディオ信号を、８つのオクターブのそれぞれに分割し、BPFBに出力し、BPFBのそれぞれは、１２のBPFを有し、１オクターブのオーディオ信号から、１２の音程のオーディオ信号を抽出して出力するようにしているものもある（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開２００５−２７５０６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、楽曲の音声信号からその楽曲のコード、すなわち和音を判別しようとする場合、誤ったコードであると判別してしまうことがあった。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、楽曲の信号である音声信号から、その楽曲の和音をより正確に判別することができるようにするものである。
【課題を解決するための手段】
【０００７】
本発明の一側面の信号処理装置は、音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す楽曲特徴量を抽出する楽曲特徴量抽出手段と、音声信号から、人間にビートを感じさせる音量の変化を時系列でデータ化した情報であるアタック情報を抽出するアタック情報抽出手段と、抽出された時系列の情報であるアタック情報を通常の波形と見立てて基本ピッチ抽出を行うことで、楽曲において最も基本となる音の長さを示す基本ビート周期を検出する基本ビート周期検出手段と、楽曲特徴量からテンポを推定し、推定された推定テンポと、検出された基本ビート周期とを用いて、テンポを決定するテンポ決定手段と、決定されたテンポの周期の位相と、周期とを修正し、その修正により最終的に決定されたテンポを示すビート情報を出力するビート情報出力手段とを備える。
【０００９】
前記基本ビート周期検出手段は、前記アタック情報をショートタイムフーリエ変換することにより得られる周波数におけるエネルギの強さを時系列に示す結果から検出される周期のうち、最も優位のものを前記基本ビート周期として検出する。
【００１０】
前記テンポ決定手段は、前記推定テンポと前記基本ビート周期とから、前記基本ビート周期の２のＸ倍の中からテンポを決定する。
【００１１】
前記ビート情報出力手段は、前記アタック情報に対するテンポの周期の位相を、その位相をずらしながら拍の範囲毎に楽曲全体にわたり前記アタック情報を足し合わすことで得られる合計値のうち、最も大きい合計値の得られた位相に修正する。
【００１２】
前記ビート情報出力手段は、テンポの周期を、その周期に対して十分短い所定の長さだけ縮めるか、または伸ばして、その縮められるかまたは伸ばされたテンポの周期で、テンポの周期毎に、楽曲全体にわたり前記アタック情報を足し合わすことで得られる合計値のうち、最も大きい合計値の得られた長さに修正する。
【００１３】
前記ビート情報出力手段は、テンポの周期の位相の修正と、テンポの周期の長さの修正とを、予め決められた回数繰り返すことにより、最終的なテンポを決定する。
【００１６】
本発明の一側面の信号処理方法は、音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す楽曲特徴量を抽出し、音声信号から、人間にビートを感じさせる音量の変化を時系列でデータ化した情報であるアタック情報を抽出し、抽出された時系列の情報であるアタック情報を通常の波形と見立てて基本ピッチ抽出を行うことで、楽曲において最も基本となる音の長さを示す基本ビート周期を検出し、楽曲特徴量からテンポを推定し、推定された推定テンポと、検出された基本ビート周期とを用いて、テンポを決定し、決定されたテンポの周期の位相と、周期とを修正し、その修正により最終的に決定されたテンポを示すビート情報を出力するステップを含む。
【００１７】
本発明の一側面のプログラムは、音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す楽曲特徴量を抽出し、音声信号から、人間にビートを感じさせる音量の変化を時系列でデータ化した情報であるアタック情報を抽出し、抽出された時系列の情報であるアタック情報を通常の波形と見立てて基本ピッチ抽出を行うことで、楽曲において最も基本となる音の長さを示す基本ビート周期を検出し、楽曲特徴量からテンポを推定し、推定された推定テンポと、検出された基本ビート周期とを用いて、テンポを決定し、決定されたテンポの周期の位相と、周期とを修正し、その修正により最終的に決定されたテンポを示すビート情報を出力するステップをコンピュータに実行させる。
【００１８】
本発明の一側面の記録媒体のプログラムは、音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す楽曲特徴量を抽出し、音声信号から、人間にビートを感じさせる音量の変化を時系列でデータ化した情報であるアタック情報を抽出し、抽出された時系列の情報であるアタック情報を通常の波形と見立てて基本ピッチ抽出を行うことで、楽曲において最も基本となる音の長さを示す基本ビート周期を検出し、楽曲特徴量からテンポを推定し、推定された推定テンポと、検出された基本ビート周期とを用いて、テンポを決定し、決定されたテンポの周期の位相と、周期とを修正し、その修正により最終的に決定されたテンポを示すビート情報を出力するステップを含む信号処理をコンピュータに実行させる。
【００１９】
本発明の一側面において、音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す楽曲特徴量が抽出され、音声信号から、人間にビートを感じさせる音量の変化を時系列でデータ化した情報であるアタック情報が抽出され、抽出された時系列の情報であるアタック情報を通常の波形と見立てて基本ピッチ抽出を行うことで、楽曲において最も基本となる音の長さを示す基本ビート周期が検出され、楽曲特徴量からテンポが推定され、推定された推定テンポと、検出された基本ビート周期とを用いて、テンポが決定され、決定されたテンポの周期の位相と、周期とが修正され、その修正により最終的に決定されたテンポを示すビート情報が出力される。
【発明の効果】
【００２０】
以上のように、本発明の一側面によれば、楽曲の和音を判別することができる。
【００２１】
また、本発明の一側面によれば、音声信号から、その楽曲の和音をより正確に判別することができる。
【発明を実施するための最良の形態】
【００３０】
図１は、本発明の一実施の形態の信号処理装置１１の構成を示すブロック図である。信号処理装置１１は、ビート検出部２１、センタ除去部２２、ビート毎特徴量抽出部２３、およびコード判別部２４から構成される。
【００３１】
信号処理装置１１に入力された楽曲の信号であってステレオ信号である音声信号は、ビート検出部２１、センタ除去部２２、およびビート毎特徴量抽出部２３に供給される。
【００３２】
ビート検出部２１は、楽曲の信号である音声信号から、ビートを検出する。
【００３３】
ビートとは、打点または拍のことであり、楽曲において基本の単位として聞こえる基準をいう。ビートは、一般に複数の意味で使われるが、以下、楽曲における基本的な時間の単位の始まりである時刻の意味で用いる。
【００３４】
楽曲における基本的な時間の単位の始まりである時刻を、拍の位置と称し、楽曲における基本的な時間の単位の範囲を、拍の範囲と称する。なお、拍の長さは、いわゆるテンポである。
【００３５】
すなわち、ビート検出部２１は、楽曲の信号である音声信号から、音声信号における拍の位置を検出する。ビート検出部２１は、音声信号における拍のそれぞれの位置を示すビート情報をビート毎特徴量抽出部２３に供給する。
【００３６】
なお、音声信号における拍の位置から次の拍の位置までが、拍の範囲なので、音声信号における拍の位置がわかれば、拍の範囲がわかる。
【００３７】
センタ除去部２２は、ステレオ信号である音声信号から、左右の中央に定位する音声の成分であるセンタ成分を除去する。センタ除去部２２は、センタ成分を除去した音声信号（以下、センタ除去済み音声信号と称する）をビート毎特徴量抽出部２３に供給する。
【００３８】
ビート毎特徴量抽出部２３は、音声信号から、所定の範囲の音声の特徴量を抽出する。例えば、ビート毎特徴量抽出部２３は、音声信号から、ビート毎の音声の特徴量（以下、ビート毎のコード判別用特徴量と称する）を抽出する。すなわち、ビート毎特徴量抽出部２３は、ビート情報を基に、音声信号の拍のそれぞれの範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す特徴量を抽出する。
【００３９】
より詳細には、ビート毎特徴量抽出部２３は、ビート情報を基に、センタ除去済み音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す特徴量を抽出するとともに、センタ成分を除去していない元の音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す特徴量を抽出する。例えば、ビート毎特徴量抽出部２３は、ビート情報を基に、センタ除去済み音声信号から、音声信号の拍のそれぞれの範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す特徴量を抽出するとともに、センタ成分を除去していない元の音声信号から、音声信号の拍のそれぞれの範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す特徴量を抽出する。
【００４０】
ビート毎特徴量抽出部２３は、センタ除去済み音声信号から抽出された特徴量とセンタ成分を除去していない元の音声信号から抽出された特徴量とからなるビート毎のコード判別用特徴量をコード判別部２４に供給する。
【００４１】
コード判別部２４は、ビート毎特徴量抽出部２３から供給された、ビート毎のコード判別用特徴量から、ビート毎のコードを判別して、出力する。すなわち、コード判別部２４は、ビート毎のコード判別用特徴量から拍の範囲の和音を判別する。
【００４２】
なお、後述するように、コード判別部２４は、特徴量による学習によって予め作成される。
【００４３】
このように、信号処理装置１１は、楽曲の音声信号から、その楽曲のビート毎のコードを判別する。
【００４４】
例えば、図２に示されるように、信号処理装置１１は、楽曲の音声信号から、Ｃであるコード、Ｂフラットであるコード、Ａマイナーであるコード、Ｇシャープであるコード、Ｇであるコード、Ｃであるコード、Ｆであるコード、Ｄマイナーであるコード、Ｄであるコード、およびＧであるコードなどをビート毎に判別する。例えば、信号処理装置１１は、ビート毎のコードのコードネームを判別して、ビート毎のコードのコードネームを出力する。
【００４５】
まず、図３に示されるように、音声信号から、ビート、すなわち拍のそれぞれの位置を検出するビート検出部２１について説明する。図３において、”１２３４１２３４１２３４”のそれぞれの数に対する縦線は、音声信号における拍のそれぞれの位置を示す。図３において、”１２３４１２３４１２３４”のそれぞれの数に対する縦線で示される位置からその次の縦線の位置までの範囲は、音声信号における拍の範囲を示す。
【００４６】
なお、隣接する２つの縦線の間で示される長さは、例えば、４分音符の長さを示し、テンポに相当する。また、”１”である数に対する縦線で示される位置は、小節の先頭を示す。
【００４７】
図４は、ビート検出部２１の構成の一例を示すブロック図である。ビート検出部２１は、アタック情報抽出部４１、基本ビート周期検出部４２、テンポ決定部４３、楽曲特徴量抽出部４４、およびテンポ修正部４５から構成される。
【００４８】
アタック情報抽出部４１は、楽曲の波形を示す音声信号から時系列のアタック情報を抽出する。ここで、時系列のアタック情報とは、人間にビートを感じさせる音量の変化を時間に沿ってデータ化したものである。図５で示されるように、アタック情報は、時間に対する、人間の感じる音量を示す音量感で表される。
【００４９】
例えば、アタック情報抽出部４１は、それぞれの時刻における、音声信号による音声のレベルを示すアタック情報を音声信号から抽出する。
【００５０】
また、例えば、図６で示されるように、アタック情報抽出部４１は、音声信号による音声を複数のオクターブの成分に分けて、さらにそれぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音のエネルギを求めることで、オクターブ毎の１２の音のそれぞれのエネルギを示す１２音解析による時間−音程データを求める。アタック情報抽出部４１は、各時刻における、１２の音と複数のオクターブとについて音のエネルギを積算し、その結果をアタック情報とする。
【００５１】
また、例えば、アタック情報抽出部４１は、音声信号による音声を複数のオクターブの成分に分けて、さらにそれぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音の鳴り始めのタイミングを検出する。例えば、アタック情報抽出部４１は、それぞれの音のエネルギの時間方向の差分が予め定めた閾値より大きい場合、その音の鳴り始めであるとする。
【００５２】
そして、アタック情報抽出部４１は、音の鳴り始めを１とし、それ以外を０として、その値を複数のオクターブのそれぞれの１２の音について積算し、その結果をアタック情報とする。
【００５３】
図６において、丸は、音の鳴り始めの位置を示す。音の鳴り始めを１とし、それ以外を０として、これを積算してアタック情報を求めた場合、アタック情報は、複数のオクターブのそれぞれの１２の音において、鳴り始めが多い場合には、大きい値となり、鳴り始めが少ない場合には、小さい値となる。
【００５４】
さらに、例えば、アタック情報抽出部４１は、音声信号による音声を複数のオクターブの成分に分けて、さらにそれぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音のエネルギの変化を求める。例えば、音のエネルギの変化は、音のエネルギの時間方向の差分として計算される。アタック情報抽出部４１は、各時刻における、音のエネルギの変化を、複数のオクターブのそれぞれの１２の音について積算し、その結果をアタック情報とする。
【００５５】
アタック情報抽出部４１は、このようなアタック情報を基本ビート周期検出部４２およびテンポ修正部４５に供給する。
【００５６】
基本ビート周期検出部４２は、コードの検出の対象となっている楽曲において、最も基本となっている音の長さを検出する。例えば、楽曲において最も基本となっている音は、４分音符、８分音符、または１６分音符で表される音である。
【００５７】
以下、楽曲において、最も基本となる音の長さを基本ビート周期と称する。
【００５８】
基本ビート周期検出部４２において、時系列の情報であるアタック情報を通常の波形と見立てて基本ピッチ（音程）抽出を行うことで基本ビート周期が求められる。
【００５９】
例えば、図７で示されるように、基本ビート周期検出部４２は、時系列の情報であるアタック情報をショートタイムフーリエ変換する。アタック情報をショートタイムフーリエ変換することにより、周波数におけるエネルギの強さを時系列に示す結果が得られる。
【００６０】
すなわち、基本ビート周期検出部４２において、アタック情報の時間的な長さに対して十分に短い期間である窓の位置をアタック情報に対してずらしながら、その窓におけるアタック情報の部分をフーリエ変換し、そのフーリエ変換の結果を時系列に配置することで、それぞれの周波数におけるエネルギの強さを時系列に示す結果が求められる。
【００６１】
ショートタイムフーリエ変換の結果、他の周波数のエネルギに比較して強いエネルギの周波数が、基本ビート周期の候補である周期として検出される。図７の下側において、濃度は、エネルギの強さを示す。
【００６２】
基本ビート周期検出部４２は、アタック情報のショートタイムフーリエ変換の結果検出された周期のうち最も優位のものを基本ビート周期とする。
【００６３】
すなわち、基本ビート周期検出部４２は、アタック情報のショートタイムフーリエ変換の結果検出された周期のうちから、予め用意した重みである基本ビートらしさと、アタック情報のショートタイムフーリエ変換の結果とを照らし合わせて、基本ビートらしさの高い周期を基本ビート周期とする。
【００６４】
より具体的には、基本ビート周期検出部４２は、予め定めた周波数方向の重みである基本ビートらしさで、アタック情報のショートタイムフーリエ変換の結果得られた周波数毎のエネルギを重み付けして、重み付けにより得られた値のうち最も大きい値が得られた周期を基本ビート周期とする。
【００６５】
周波数方向の重みである基本ビートらしさを用いることにより、基本ビート周期とはなり得ない極めて低い周波数の周期や極めて高い周波数の周期が、基本ビート周期とされることを防止することができる。
【００６６】
基本ビート周期検出部４２は、このように抽出した基本ビート周期をテンポ決定部４３に供給する。
【００６７】
楽曲特徴量抽出部４４は、音声信号に所定の信号処理を適用することにより、楽曲から所定の数の特徴量（以下、楽曲特徴量と称する）を抽出する。例えば、楽曲特徴量抽出部４４は、音声信号を複数のオクターブの成分に分けて、さらにそれぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音の信号を求めて、それぞれのオクターブにおけるそれぞれの１２の音の信号に所定の信号処理を適用することにより、楽曲特徴量を抽出する。
【００６８】
例えば、楽曲特徴量抽出部４４は、楽曲特徴量として、それぞれのオクターブにおけるそれぞれの１２の音の信号の、単位時間当たりのピークの数を求める。
【００６９】
また、例えば、楽曲特徴量抽出部４４は、楽曲特徴量として、それぞれのオクターブにおけるそれぞれの１２の音の信号の、音程方向のエネルギの分散を求める。
【００７０】
さらにまた、例えば、楽曲特徴量抽出部４４は、楽曲特徴量として、それぞれのオクターブにおけるそれぞれの１２の音の信号から、低域、中域、および高域のエネルギのバランスを求める。
【００７１】
また、例えば、楽曲特徴量抽出部４４は、楽曲特徴量として、それぞれのオクターブにおけるそれぞれの１２の音の信号から、ステレオである音声信号の左右のチャンネルの信号の相関の大きさなどを求める。
【００７２】
楽曲特徴量抽出部４４は、このように抽出した楽曲特徴量をテンポ決定部４３に供給する。
【００７３】
テンポ決定部４３は、楽曲特徴量とテンポとによる学習によって予め構成され、楽曲特徴量抽出部４４から供給された楽曲特徴量から、テンポを推定する。以下、推定されたテンポを推定テンポと称する。
【００７４】
テンポ決定部４３は、推定テンポと、基本ビート周期検出部４２から供給された基本ビート周期とから、基本ビート周期の２のＸ乗倍（・・・１／８倍、１／４倍、１／２倍、１倍、２倍、４倍、８倍・・・）の中からテンポを決定する。例えば、楽曲の特徴量から回帰解析で推定された推定テンポに対して、推定テンポ×２1/2と推定テンポ÷２1/2との範囲に収まるように、基本ビート周期を２倍するかまたは１／２倍して得られた値がテンポとされる。
【００７５】
例えば、図８で示されるように、テンポ決定部４３は、基本ビート周期検出部４２から供給された基本ビート周期と、推定テンポ÷２1/2で求められる周期とを比較して、推定テンポ÷２1/2で求められる周期より基本ビート周期（図８の上側の白丸で示される基本ビート周期）が長い場合、基本ビート周期を１／２倍する。
【００７６】
テンポ決定部４３は、基本ビート周期検出部４２から供給された基本ビート周期と、推定テンポ×２1/2で求められる周期とを比較して、推定テンポ×２1/2で求められる周期より基本ビート周期（図８の下側の白丸で示される基本ビート周期）が短い場合、基本ビート周期を２倍する。
【００７７】
テンポ決定部４３は、推定テンポ×２1/2と推定テンポ÷２1/2との範囲に収まるように、１／２倍したか若しくは２倍したか、または繰り返し１／２倍したか若しくは繰り返し２倍した基本ビート周期（図８の黒丸で示される基本ビート周期）をテンポとする。
【００７８】
なお、テンポ決定部４３は、基本ビート周期が推定テンポ×２1/2と推定テンポ÷２1/2との範囲に収まる場合、そのままの基本ビート周期をテンポとする。
【００７９】
テンポ決定部４３は、このように決定したテンポをテンポ修正部４５に供給する。
【００８０】
テンポ修正部４５は、アタック情報により、テンポ決定部４３において決定されたテンポをより細かく修正する。
【００８１】
まず、テンポ修正部４５は、ビートの位相を修正する。
【００８２】
すなわち、図９で示されるように、テンポ修正部４５は、アタック情報に対して決定されたテンポの周期で、拍の範囲毎に、楽曲全体にわたりアタック情報を足し合わせる。
【００８３】
例えば、テンポ修正部４５は、楽曲全体にわたり、テンポの周期で決められる拍の範囲について、最初の拍の範囲乃至最後の拍の範囲のそれぞれにおける、最初のアタック情報のサンプルを足し合わせて、その結果を、拍の範囲の最初の合計値とする。次に、テンポ修正部４５は、楽曲全体にわたり、テンポの周期で決められる拍の範囲について、最初の拍の範囲乃至最後の拍の範囲のそれぞれにおける、２番目のアタック情報のサンプルを足し合わせて、その結果を、拍の範囲の２番目の合計値とする。
【００８４】
同様に、テンポ修正部４５は、楽曲全体にわたり、テンポの周期で決められる拍の範囲について、最初の拍の範囲乃至最後の拍の範囲のそれぞれにおける、３番目乃至最後のアタック情報のサンプルを、拍の範囲における順毎に足し合わせて、その結果のそれぞれを、拍の範囲の最初乃至最後の合計値とする。
【００８５】
そして、テンポ修正部４５は、アタック情報に対するテンポの周期の位相をずらして、同様に、拍の範囲毎に、楽曲全体にわたりアタック情報を足し合わせる。
【００８６】
テンポ修正部４５は、アタック情報に対するテンポの周期の位相を、アタック情報に対するテンポの周期の位相をずらして得られた合計値のうち、最も大きい合計値の得られた位相に修正する。すなわち、テンポ修正部４５は、拍の位置を、最も大きい合計値の得られた、アタック情報に対するテンポの周期の位置に修正する。
【００８７】
また、テンポ修正部４５は、テンポを修正する。
【００８８】
すなわち、図１０で示されるように、テンポ修正部４５は、テンポの周期を、その周期に対して十分短い所定の長さだけ縮めるか、または伸ばして、その縮められるかまたは伸ばされたテンポの周期で、テンポの周期毎に、楽曲全体にわたりアタック情報を足し合わせる。
【００８９】
この場合も、テンポ修正部４５は、楽曲全体にわたり、テンポの周期で決められる拍の範囲について、最初の拍の範囲乃至最後の拍の範囲のそれぞれにおける、最初乃至最後のアタック情報のサンプルを、拍の範囲における順毎に足し合わせて、その結果のそれぞれを、拍の範囲の最初乃至最後の合計値とする。
【００９０】
テンポ修正部４５は、テンポの周期を所定の長さだけ縮めるか、または伸ばして、その縮められるかまたは伸ばされたテンポの周期毎に、楽曲全体にわたりアタック情報を足し合わせて、拍の範囲の最初乃至最後の合計値を求める。
【００９１】
テンポ修正部４５は、元の長さか、縮められるか、または伸ばされたテンポの周期のうち、最も大きい合計値の得られた長さにテンポの周期を修正する。
【００９２】
テンポ修正部４５は、このようなビートの位相の修正とテンポの修正とを必要に応じて繰り返して、最終的なテンポを決定する。例えば、テンポ修正部４５は、ビートの位相の修正と、テンポの修正とを、それぞれ２回など、予め決められた回数だけ繰り返して、最終的なテンポを決定する。
【００９３】
テンポ修正部４５は、最終的に決定されたテンポを示すビート情報を出力する。
【００９４】
このように、ビート検出部２１は、音声信号から、拍のそれぞれの位置を検出し、音声信号における拍の位置を示すビート情報を出力する。
【００９５】
次に、コード判別部２４の構成について説明する。
【００９６】
図１１は、コード判別部２４の構成の一例を示すブロック図である。コード判別部２４は、シフトレジスタ６１、ルート判別部６２、メジャーマイナー判別部６３、ルート判別部６４、メジャーマイナー判別部６５、および確率計算部６６から構成される。
【００９７】
シフトレジスタ６１は、ビート毎特徴量抽出部２３から供給されるビート毎のコード判別用特徴量が、センタ除去済み音声信号から抽出された特徴量とセンタ成分を除去していない元の音声信号から抽出された特徴量とからなり、センタ除去済み音声信号から抽出された特徴量およびセンタ成分を除去していない元の音声信号から抽出された特徴量が、それぞれ、音声信号の拍のそれぞれの範囲における、１２平均律の音程のそれぞれの高さの音について、所定の高さの音である基準音を基準に音階の順のそれぞれの高さの音のそれぞれのエネルギを示すので、それぞれの特徴量の基準音を他の音とするようにそれぞれの特徴量をシフトする。
【００９８】
シフトレジスタ６１は、特徴量の基準音を他の音とするようにシフトした特徴量を、ルート判別部６２、メジャーマイナー判別部６３、ルート判別部６４、およびメジャーマイナー判別部６５に供給する。
【００９９】
ルート判別部６２は、ビート毎のコード判別用特徴量のうちの、センタ除去済み音声信号から抽出された特徴量から、基準音がルートであるかを判別する。より詳細には、ルート判別部６２は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、センタ除去済み音声信号から抽出された特徴量から、その特徴量における基準音がルートであるかを判別するとともに、シフトレジスタ６１によって、基準音を他の音とするようにシフトされた、センタ除去済み音声信号から抽出された特徴量から、シフトされた特徴量における基準音がルートであるかを判別する。
【０１００】
例えば、ルート判別部６２は、基準音がルートであるかを判別する判別関数を出力する。
【０１０１】
メジャーマイナー判別部６３は、ビート毎のコード判別用特徴量のうちの、センタ除去済み音声信号から抽出された特徴量から、メジャーの和音であるかマイナーの和音であるかを判別する。より詳細には、メジャーマイナー判別部６３は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、センタ除去済み音声信号から抽出された特徴量から、その特徴量が抽出された拍の範囲の和音がメジャーの和音であるかマイナーの和音であるかを判別するとともに、シフトレジスタ６１によって、基準音を他の音とするようにシフトされた、センタ除去済み音声信号から抽出された特徴量から、シフトする前の特徴量が抽出された拍の範囲の和音がメジャーの和音であるかマイナーの和音であるかを判別する。
【０１０２】
例えば、メジャーマイナー判別部６３は、メジャーの和音であるかマイナーの和音であるかを判別する判別関数を出力する。
【０１０３】
ルート判別部６４は、ビート毎のコード判別用特徴量のうちの、センタ成分を除去していない元の音声信号から抽出された特徴量から、基準音がルートであるかを判別する。より詳細には、ルート判別部６４は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、センタ成分を除去していない元の音声信号から抽出された特徴量から、その特徴量における基準音がルートであるかを判別するとともに、シフトレジスタ６１によって、基準音を他の音とするようにシフトされた、センタ成分を除去していない元の音声信号から抽出された特徴量から、シフトされた特徴量における基準音がルートであるかを判別する。
【０１０４】
例えば、ルート判別部６４は、基準音がルートであるかを判別する判別関数を出力する。
【０１０５】
メジャーマイナー判別部６５は、ビート毎のコード判別用特徴量のうちの、センタ成分を除去していない元の音声信号から抽出された特徴量から、メジャーの和音であるかマイナーの和音であるかを判別する。より詳細には、メジャーマイナー判別部６５は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、センタ成分を除去していない元の音声信号から抽出された特徴量から、その特徴量が抽出された拍の範囲の和音がメジャーの和音であるかマイナーの和音であるかを判別するとともに、シフトレジスタ６１によって、基準音を他の音とするようにシフトされた、センタ成分を除去していない元の音声信号から抽出された特徴量から、シフトする前の特徴量が抽出された拍の範囲の和音がメジャーの和音であるかマイナーの和音であるかを判別する。
【０１０６】
例えば、メジャーマイナー判別部６５は、メジャーの和音であるかマイナーの和音であるかを判別する判別関数を出力する。
【０１０７】
確率計算部６６は、ルート判別部６２から出力された判別関数またはルート判別部６４から出力された判別関数から、基準音がルートである確率を計算すると共に、メジャーマイナー判別部６３から出力された判別関数またはメジャーマイナー判別部６５から出力された判別関数から、メジャーの和音である確率とマイナーの和音である確率とを計算する。
【０１０８】
コード判別部２４は、基準音がルートである確率、およびメジャーの和音である確率とマイナーの和音である確率から、最終的にコードを判別して、出力する。
【０１０９】
次に、図１２のフローチャートを参照して、信号処理装置１１によるコード判別の処理を説明する。ステップＳ１１において、ビート検出部２１は、ビートを検出する。すなわち、ステップＳ１１において、ビート検出部２１は、図３乃至図１０を参照して説明した処理によって、楽曲の信号である音声信号から、音声信号における拍の位置を検出して、音声信号における拍のそれぞれの位置を示すビート情報をビート毎特徴量抽出部２３に供給する。
【０１１０】
ステップＳ１２において、センタ除去部２２は、ステレオ信号である音声信号から、左右の中央に定位する音声の成分であるセンタ成分を除去し、センタ除去済み音声信号をビート毎特徴量抽出部２３に供給する。
【０１１１】
例えば、図１３で示されるように、ステップＳ１２において、センタ除去部２２は、ステレオ信号である音声信号のうちの一方のチャンネルの信号と他方のチャンネルの信号との差分を求めることにより、音声信号からセンタ成分を除去する。より具体的には、センタ除去部２２は、音声信号のうちの、左側に定位する音声の成分であるレフト成分Lと左右の中央に定位する音声の成分であるセンタ成分Cとからなる左チャンネルの信号から、右側に定位する音声の成分であるライト成分Rと左右の中央に定位する音声の成分であるセンタ成分Cとからなる右チャンネルの信号を引き算する。センタ除去部２２は、その結果得られた、センタ成分Cが除去され、レフト成分Lからライト成分Rを引き算した結果からなるセンタ除去済み音声信号を生成する。
【０１１２】
また、例えば、ステップＳ１２において、センタ除去部２２は、ステレオ信号である音声信号を所定の数の周波数の帯域に分割し、周波数の帯域のいずれかにおいて、一方のチャンネルの信号の位相と他方のチャンネルの信号の位相との差が予め定めた閾値より小さい場合、その帯域の音声信号をマスクすることにより、音声信号からセンタ成分を除去する。
【０１１３】
この場合、図１４で示されるように、センタ除去部２２は、DFT（Discrete Fourier Transform）フィルタバンク８１、DFTフィルタバンク８２、マスク部８３、DFTフィルタバンク８４、およびDFTフィルタバンク８５から構成される。
【０１１４】
DFTフィルタバンク８１は、音声信号のうちの、左側に定位する音声の成分であるレフト成分Lと左右の中央に定位する音声の成分であるセンタ成分Cとからなる左チャンネルの信号に、離散フーリエ変換の処理を適用して、所定の数の周波数の帯域のスペクトルを示すマルチバンド信号を生成する。DFTフィルタバンク８１は、生成したマルチバンド信号をマスク部８３に供給する。
【０１１５】
DFTフィルタバンク８２は、音声信号のうちの、右側に定位する音声の成分であるライト成分Rと左右の中央に定位する音声の成分であるセンタ成分Cとからなる右チャンネルの信号に、離散フーリエ変換の処理を適用して、DFTフィルタバンク８１により生成されるマルチバンド信号における周波数の帯域のそれぞれと同じ周波数の帯域のスペクトルを示すマルチバンド信号を生成する。DFTフィルタバンク８２は、生成したマルチバンド信号をマスク部８３に供給する。
【０１１６】
マスク部８３は、DFTフィルタバンク８１から供給されたマルチバンド信号の位相と、DFTフィルタバンク８２から供給されたマルチバンド信号の位相とを、周波数の帯域毎に比較して、DFTフィルタバンク８１から供給されたマルチバンド信号の位相と、DFTフィルタバンク８２から供給されたマルチバンド信号の位相との差が予め定めた閾値より小さい場合、DFTフィルタバンク８１から供給されたマルチバンド信号のうちのその帯域の信号とDFTフィルタバンク８２から供給されたマルチバンド信号のうちのその帯域の信号とをマスクする。
【０１１７】
マスク部８３は、マスクされた帯域の信号を含む、DFTフィルタバンク８１から供給されたマルチバンド信号をDFTフィルタバンク８４に供給する。また、マスク部８３は、マスクされた帯域の信号を含む、DFTフィルタバンク８２から供給されたマルチバンド信号をDFTフィルタバンク８５に供給する。
【０１１８】
DFTフィルタバンク８４は、マスク部８３から供給された、マスクされた帯域の信号を含むマルチバンド信号に、逆離散フーリエ変換の処理を適用して、左右の中央に定位する音声の成分であるセンタ成分Cが除去され、左側に定位する音声の成分であるレフト成分Lだけからなる信号を生成する。DFTフィルタバンク８４は、レフト成分Lだけからなる信号を出力する。
【０１１９】
DFTフィルタバンク８５は、マスク部８３から供給された、マスクされた帯域の信号を含むマルチバンド信号に、逆離散フーリエ変換の処理を適用して、左右の中央に定位する音声の成分であるセンタ成分Cが除去され、右側に定位する音声の成分であるライト成分Rだけからなる信号を生成する。DFTフィルタバンク８５は、ライト成分Rだけからなる信号を出力する。
【０１２０】
また、例えば、図１５で示されるように、音声信号についての、複数のオクターブのそれぞれにおける１２平均律のそれぞれの高さの１２の音のエネルギから、センタ除去済み音声信号を求めるようにしてもよい。
【０１２１】
すなわち、図１６で示されるように、ステップＳ１２において、センタ除去部２２は、音声信号の右チャンネルの信号および左チャンネルの信号のそれぞれについて、複数のオクターブの成分に分けて、さらにそれぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音のエネルギを求めて、それぞれのオクターブのそれぞれの音毎に、左チャンネルの信号から求めたエネルギから右チャンネルの信号から求めたエネルギを引き算する。さらに、センタ除去部２２は、引き算の結果の絶対値からなる信号を求めて、この信号をセンタ除去済み音声信号とするようにしてもよい。
【０１２２】
なお、この場合、ベースの信号は、コードの抽出について重要なので、ベースの含まれる帯域のみ、左チャンネルの信号と右チャンネルの信号とについての差分を取らないなどとするようにしてもよい。
【０１２３】
音声信号には、センタ成分としてボーカルラインやエネルギの大きい打楽器の音の成分が含まれていることが多く、この成分がコード判別の妨げになることがある。
【０１２４】
そこで、より正確にコードを判別できるようにするため、ステレオ信号である音声信号から、センタ成分が除去される。
【０１２５】
以下、左チャンネルの信号と右チャンネルの信号との、それぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音のエネルギの差の絶対値を示すセンタ除去済み音声信号を例に説明する。
【０１２６】
図１２に戻り、ステップＳ１３において、ビート毎特徴量抽出部２３は、元の音声信号からビート毎にコード判別用特徴量を抽出する。すなわち、ステップＳ１３において、ビート毎特徴量抽出部２３は、センタ成分が除去されていない音声信号から、拍のそれぞれの範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す特徴量を抽出する。
【０１２７】
ステップＳ１４において、ビート毎特徴量抽出部２３は、センタ成分を除去した音声信号であるセンタ除去済み音声信号からビート毎にコード判別用特徴量を抽出する。すなわち、ステップＳ１４において、ビート毎特徴量抽出部２３は、センタ成分が除去された音声信号から、拍のそれぞれの範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す特徴量を抽出する。
【０１２８】
ステップＳ１３およびステップＳ１４において、ビート毎特徴量抽出部２３は、ビート検出部２１において検出された拍の位置を示すビート情報を基に、センタ成分を除去した音声信号およびセンタ成分が除去されていない音声信号のそれぞれの、拍の範囲のそれぞれから特徴量を抽出する。
【０１２９】
図１７で示されるように、後述するステップＳ１５のビート毎のコード判別の処理において、拍の範囲の特徴量のそれぞれから、それぞれにコードが判別される。ステップＳ１３およびステップＳ１４において、音声信号の拍の範囲のコードの判別に用いられる、音声信号の拍の範囲の特徴量が抽出される。
【０１３０】
ここで、図１８および図１９を参照して、センタ成分を除去した音声信号またはセンタ成分が除去されていない音声信号のいずれかである音声信号の拍の範囲からの特徴量の抽出の詳細について説明する。
【０１３１】
まず、ビート毎特徴量抽出部２３は、センタ成分が除去されていない音声信号の右チャンネルの信号および左チャンネルの信号のそれぞれについて、複数のオクターブの成分に分けて、さらにそれぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音のエネルギを求める。例えば、ビート毎特徴量抽出部２３は、それぞれのオクターブのそれぞれの音毎に、左チャンネルの信号から求めたエネルギと右チャンネルの信号から求めたエネルギとを加算する。
【０１３２】
このようにすることで、センタ成分が除去されていない音声信号は、左チャンネルの信号と右チャンネルの信号との、それぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音のエネルギの差の絶対値を示すセンタ除去済み音声信号の方式に対応して、それぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音のエネルギを示す方式とされる。
【０１３３】
そして、図１８で示されるように、ビート毎特徴量抽出部２３は、それぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音のエネルギを示す方式とされた、センタ成分を除去した音声信号またはセンタ成分が除去されていない音声信号のいずれかである音声信号から、ビート情報で示される拍の位置を基に、所定の拍の位置から次の拍の位置までの拍の範囲の信号のみを切り出す。
【０１３４】
ビート毎特徴量抽出部２３は、切り出された拍の範囲の信号で示されるエネルギを、時間で平均する。これにより、図１８の右側に示されるように、それぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音毎のエネルギが求められる。
【０１３５】
さらに、図１９で示されるように、ビート毎特徴量抽出部２３は、例えば、７オクターブの、それぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音毎のエネルギに重み付けする。この場合、それぞれのオクターブにおける１２平均律のそれぞれの高さの１２の音毎に予め定めた重みで、それぞれの音のエネルギが重み付けされる。
【０１３６】
そして、例えば、ビート毎特徴量抽出部２３は、７オクターブのそれぞれのオクターブにおいて、同じ音名の音のエネルギを加算して、音名で特定される１２の音のそれぞれのエネルギを求める。ビート毎特徴量抽出部２３は、１２の音のそれぞれのエネルギを音名の音階の順に配置して、音階の順の音のエネルギを示す特徴量を生成する。
【０１３７】
すなわち、例えば、ビート毎特徴量抽出部２３は、重み付けされたエネルギのうち、C1，C2,C3,C4,C5,C6、およびC7のエネルギを加算して、Cである音名の音のエネルギを求める。ビート毎特徴量抽出部２３は、重み付けされたエネルギのうち、C#1，C#2,C#3,C#4,C#5,C#6、およびC#7のエネルギを加算して、C#である音名の音のエネルギを求める。
【０１３８】
同様に、ビート毎特徴量抽出部２３は、重み付けされたエネルギのうち、オクターブＯ１乃至オクターブＯ７のD,D#,E,F,F#,G,G#,A,A#、およびBのそれぞれのエネルギを加算して、D,D#,E,F,F#,G,G#,A,A#、およびBのそれぞれの音名の音のエネルギをそれぞれ求める。
【０１３９】
ビート毎特徴量抽出部２３は、音階の順に、C,C#,D,D#,E,F,F#,G,G#,A,A#、およびBのそれぞれの音名の音のエネルギを示すデータが配置されてなる特徴量を生成する。
【０１４０】
このように、ビート毎特徴量抽出部２３は、センタ成分を除去した音声信号またはセンタ成分が除去されていない音声信号のいずれかである音声信号の拍の範囲から特徴量を生成する。
【０１４１】
なお、ビート毎特徴量抽出部２３は、センタ成分が除去されていない音声信号の拍の範囲からのビート毎のコード判別用特徴量として、ルートを判別するために用いられる特徴量（以下、元信号ルート判別用特徴量と称する）とメジャーの和音であるかマイナーの和音であるかを判別するために用いられる特徴量（以下、元信号メジャーマイナー判別用特徴量と称する）とを生成する。
【０１４２】
元信号ルート判別用特徴量を生成する場合に用いられる、音のエネルギに重み付けするための重みと、元信号メジャーマイナー判別用特徴量を生成する場合に用いられる、音のエネルギに重み付けするための重みとは、異なっている。
【０１４３】
また、ビート毎特徴量抽出部２３は、センタ成分を除去した音声信号の拍の範囲からのビート毎のコード判別用特徴量として、ルートを判別するために用いる特徴量（以下、センタ除去済みルート判別用特徴量と称する）とメジャーの和音であるかマイナーの和音であるかを判別するために用いる特徴量（以下、センタ除去済みメジャーマイナー判別用特徴量と称する）とを生成する。
【０１４４】
センタ除去済みルート判別用特徴量を生成する場合に用いられる、音のエネルギに重み付けするための重みと、センタ除去済みメジャーマイナー判別用特徴量を生成する場合に用いられる、音のエネルギに重み付けするための重みとは、異なっている。
【０１４５】
このように、図２０に示されるように、ステップＳ１３およびステップＳ１４において、ビート毎特徴量抽出部２３は、ビート毎のコード判別用特徴量として、元信号ルート判別用特徴量、元信号メジャーマイナー判別用特徴量、センタ除去済みルート判別用特徴量、およびセンタ除去済みメジャーマイナー判別用特徴量を生成する。
【０１４６】
図１２に戻り、ステップＳ１５において、コード判別部２４は、ビート毎のコード判別の処理を実行して、コード判別の処理は終了する。
【０１４７】
図２１は、ビート毎のコード判別の処理の例の詳細を説明するフローチャートである。
【０１４８】
ステップＳ３１において、コード判別部２４は、元の音声信号からのビート毎のコード判別用特徴量を取得する。すなわち、コード判別部２４は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量を取得する。
【０１４９】
ステップＳ３２において、ルート判別部６４は、元信号ルート判別用特徴量によりルート判別する。例えば、ステップＳ３２において、ルート判別部６４は、所定の高さの音である基準音を基準に音階の順のそれぞれの高さの音のそれぞれのエネルギを示す元信号ルート判別用特徴量から、基準音がルートであるかを判別する。この場合、ルート判別部６４は、基準音がルートであるかを判別する判別関数を出力する。
【０１５０】
より具体的には、例えば、ステップＳ３２において、ルート判別部６４は、元信号ルート判別用特徴量から、元信号ルート判別用特徴量の最初のデータの音である基準音がルートであるかを判別し、判別関数を出力する。
【０１５１】
ステップＳ３３において、確率計算部６６は、ルート判別部６４からの出力値を確率に変換する。すなわち、ステップＳ３３において、確率計算部６６は、ルート判別部６４からの、基準音がルートであるかを判別する判別関数を確率に変換する。
【０１５２】
ステップＳ３４において、メジャーマイナー判別部６５は、元信号メジャーマイナー判別用特徴量により和音のメジャーまたはマイナーを判別する。例えば、ステップＳ３４において、メジャーマイナー判別部６５は、所定の高さの音である基準音を基準に音階の順のそれぞれの高さの音のそれぞれのエネルギを示す元信号メジャーマイナー判別用特徴量から、メジャーの和音であるかマイナーの和音であるかを判別する。この場合、メジャーマイナー判別部６５は、メジャーの和音であるかマイナーの和音であるかを判別する判別関数を出力する。
【０１５３】
ステップＳ３５において、確率計算部６６は、メジャーマイナー判別部６５からの出力値を確率に変換する。すなわち、ステップＳ３５において、確率計算部６６は、メジャーマイナー判別部６５からの、メジャーの和音であるかマイナーの和音であるかを判別する判別関数を確率に変換する。
【０１５４】
ステップＳ３６において、コード判別部２４は、ステップＳ３３で求められた確率およびステップＳ３５で求められた確率から、現在のルートのメジャーまたはマイナーである確率をそれぞれ求める。
【０１５５】
ステップＳ３７において、シフトレジスタ６１は、ビート毎のコード判別用特徴量をシフトする。
【０１５６】
ステップＳ３８において、コード判別部２４は、ステップＳ３２乃至ステップＳ３８の処理を１２回繰り返したか否かを判定し、１２回繰り返していないと判定された場合、ステップＳ３２に戻り、シフトされたビート毎のコード判別用特徴量を用いた、ステップＳ３２乃至ステップＳ３８の処理を繰り返す。
【０１５７】
図２２に示されるように、コード判別部２４は、ルートをC乃至Bであると順に仮定し、仮定されたルートのデータが最初に来るようにコード判別用特徴量をシフトして、仮定したルートのメジャーコードである確率およびマイナーコードである確率をそれぞれ求めていく。
【０１５８】
すなわち、コード判別部２４は、音階の順に、１２のそれぞれの音名の音のエネルギを示すデータが配置されてなる元信号ルート判別用特徴量と元信号メジャーマイナー判別用特徴量とにおいて、例えば、図２２の斜線で示される位置である、予め決められた位置に配置されているエネルギの音がルートのメジャーコードである確率と、その位置に配置されているエネルギの音がルートのマイナーコードである確率とを求める。
【０１５９】
例えば、元信号ルート判別用特徴量と元信号メジャーマイナー判別用特徴量とにおいて、C,C#,D,D#,E,F,F#,G,G#,A,A#、およびBのそれぞれの音名の音のエネルギを示すデータが順に配置されている場合、コード判別部２４は、図２２の斜線で示されるコード判別用特徴量の最初に配置されているエネルギの音であるCのメジャーコードである確率と、Cのマイナーコードである確率とを求める。
【０１６０】
シフトレジスタ６１は、元信号ルート判別用特徴量と元信号メジャーマイナー判別用特徴量とにおける、音階の順の、１２のそれぞれの音名の音のエネルギを示すデータの配置を、それぞれ、循環的にシフト、いわゆるローテートシフトする。例えば、元信号ルート判別用特徴量と元信号メジャーマイナー判別用特徴量とにおいて、図２２の斜線で示される最初に配置されているエネルギの音がCとされ、C,C#,D,D#,E,F,F#,G,G#,A,A#、およびBのそれぞれの音名の音のエネルギを示すデータが順に配置されている場合、シフトレジスタ６１は、C#,D,D#,E,F,F#,G,G#,A,A#,B、およびCのそれぞれの音名の音のエネルギを示すデータが順に配置されるように、元信号ルート判別用特徴量と元信号メジャーマイナー判別用特徴量とにおける音のエネルギを示すデータの配置をシフトする。この場合、図２２の斜線で示されるコード判別用特徴量の最初に配置されるエネルギの音は、C#となる。
【０１６１】
C#,D,D#,E,F,F#,G,G#,A,A#,B、およびCの順でそれぞれの音名の音のエネルギを示すデータが配置されるように、シフトされた元信号ルート判別用特徴量と元信号メジャーマイナー判別用特徴量とから、コード判別部２４は、C#のメジャーコードである確率と、C#のマイナーコードである確率とを求める。
【０１６２】
元信号ルート判別用特徴量と元信号メジャーマイナー判別用特徴量とにおける音のエネルギを示すデータの配置をシフトして、例えば、コード判別用特徴量の最初などの、予め決められた位置に配置されているエネルギの音である基準音がルートのメジャーコードである確率と、その基準音がルートのマイナーコードである確率とを求める処理が繰り返されることにより、コード判別部２４は、Dのメジャーコードである確率およびDのマイナーコードである確率乃至Bのメジャーコードである確率およびBのマイナーコードである確率を求める。
【０１６３】
この処理をより詳細に説明すると、図２３で示されるように、ステップＳ３２において、ルート判別部６４は、所定の高さの音である基準音を基準に音階の順のそれぞれの高さの音のそれぞれのエネルギを示す元信号ルート判別用特徴量から、基準音がルートであるかを判別し、基準音がルートであるかを判別する判別関数を出力する。
【０１６４】
ステップＳ３３において、確率計算部６６は、ルート判別部６４からの、基準音がルートであるかを判別する判別関数を確率に変換し、基準音がルートである確率Rを求める。
【０１６５】
また、ステップＳ３４において、メジャーマイナー判別部６５は、所定の高さの音である基準音を基準に音階の順のそれぞれの高さの音のそれぞれのエネルギを示す元信号メジャーマイナー判別用特徴量から、メジャーの和音であるかマイナーの和音であるかを判別し、メジャーの和音であるかマイナーの和音であるかを判別する判別関数を出力する。
【０１６６】
ステップＳ３５において、確率計算部６６は、メジャーマイナー判別部６５からの、メジャーの和音であるかマイナーの和音であるかを判別する判別関数を確率に変換し、メジャーである確率Majおよびマイナーである確率Minを求める。
【０１６７】
コード判別部２４は、基準音がルートのメジャーコードである確率を、確率Rと確率Majとを掛け算することにより計算する。また、コード判別部２４は、基準音がルートのマイナーコードである確率を、確率Rと確率Minとを掛け算することにより計算する。
【０１６８】
なお、図２４にメジャーの和音であるかマイナーの和音であるかを判別する判別関数の出力値の例を示すように、判別関数の出力値は、確率ではない連続値なので、判別関数の出力値を確率に変換する場合、確率計算部６６は、正規分布またはGMM（Gaussian Mixture Model）を用いて、判別関数の出力値に対する各状態である確率を推定する。
【０１６９】
このように、図２５で示されるように、コード判別部２４は、元信号ルート判別用特徴量と元信号メジャーマイナー判別用特徴量とから、拍の範囲の和音がCのメジャーコードである確率およびCのマイナーコードである確率乃至Bのメジャーコードである確率およびBのマイナーコードである確率をそれぞれ求める。すなわち、コード判別部２４によって、元信号ルート判別用特徴量と元信号メジャーマイナー判別用特徴量とから、Cのメジャーコードである確率、Cのマイナーコードである確率、C#のメジャーコードである確率、C#のマイナーコードである確率、Dのメジャーコードである確率、Dのマイナーコードである確率、D#のメジャーコードである確率、D#のマイナーコードである確率、Eのメジャーコードである確率、Eのマイナーコードである確率、Fのメジャーコードである確率、Fのマイナーコードである確率、F#のメジャーコードである確率、F#のマイナーコードである確率、Gのメジャーコードである確率、Gのマイナーコードである確率、G#のメジャーコードである確率、G#のマイナーコードである確率、Aのメジャーコードである確率、Aのマイナーコードである確率、A#のメジャーコードである確率、A#のマイナーコードである確率、Bのメジャーコードである確率、およびBのマイナーコードである確率がそれぞれ求められる。
【０１７０】
図２１に戻り、ステップＳ３８において、１２回繰り返したと判定された場合、手続きは、ステップＳ３９に進む。
【０１７１】
ステップＳ３９において、コード判別部２４は、センタ成分を除去した音声信号からのビート毎のコード判別用特徴量を取得する。すなわち、コード判別部２４は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、センタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量を取得する。
【０１７２】
ステップＳ４０において、ルート判別部６２は、センタ除去済みルート判別用特徴量によりルート判別する。例えば、ステップＳ４０において、ルート判別部６２は、所定の高さの音である基準音を基準に音階の順のそれぞれの高さの音のそれぞれのエネルギを示すセンタ除去済みルート判別用特徴量から、基準音がルートであるかを判別する。この場合、ルート判別部６２は、基準音がルートであるかを判別する判別関数を出力する。
【０１７３】
ステップＳ４１において、確率計算部６６は、ルート判別部６２からの出力値を確率に変換する。すなわち、ステップＳ４１において、確率計算部６６は、ルート判別部６２からの、基準音がルートであるかを判別する判別関数を確率に変換する。
【０１７４】
ステップＳ４２において、メジャーマイナー判別部６３は、センタ除去済みメジャーマイナー判別用特徴量により和音のメジャーまたはマイナーを判別する。例えば、ステップＳ４２において、メジャーマイナー判別部６３は、所定の高さの音である基準音を基準に音階の順のそれぞれの高さの音のそれぞれのエネルギを示すセンタ除去済みメジャーマイナー判別用特徴量から、メジャーの和音であるかマイナーの和音であるかを判別する。この場合、メジャーマイナー判別部６３は、メジャーの和音であるかマイナーの和音であるかを判別する判別関数を出力する。
【０１７５】
ステップＳ４３において、確率計算部６６は、メジャーマイナー判別部６３からの出力値を確率に変換する。すなわち、ステップＳ４３において、確率計算部６６は、メジャーマイナー判別部６３からの、メジャーの和音であるかマイナーの和音であるかを判別する判別関数を確率に変換する。
【０１７６】
ステップＳ４４において、コード判別部２４は、ステップＳ４１で求められた確率およびステップＳ４３で求められた確率から、現在のルートのメジャーまたはマイナーである確率をそれぞれ求める。
【０１７７】
ステップＳ４５において、シフトレジスタ６１は、ビート毎のコード判別用特徴量をシフトする。
【０１７８】
ステップＳ４６において、コード判別部２４は、ステップＳ４０乃至ステップＳ４５の処理を１２回繰り返したか否かを判定し、１２回繰り返していないと判定された場合、ステップＳ４０に戻り、シフトされたビート毎のコード判別用特徴量を用いた、ステップＳ４０乃至ステップＳ４５の処理を繰り返す。
【０１７９】
図２６で示されるように、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量から求められた、拍の範囲の和音がCのメジャーコードである確率およびCのマイナーコードである確率乃至Bのメジャーコードである確率およびBのマイナーコードである確率とは別個に、ステップＳ３１乃至ステップＳ４６の処理により、センタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量から、拍の範囲の和音がCのメジャーコードである確率およびCのマイナーコードである確率乃至Bのメジャーコードである確率およびBのマイナーコードである確率とがそれぞれ求められる。
【０１８０】
このように、様々な特徴量から求めたコードの確率から総合的に判断されて、それぞれの拍の範囲のコードが決定される。
【０１８１】
ステップＳ４６において、１２回繰り返したと判定された場合、手続きは、ステップＳ４７に進む。
【０１８２】
ステップＳ４７において、コード判別部２４は、最も確率の高いコードを正解コードとする。すなわち、コード判別部２４は、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量から求められた、拍の範囲の和音がCのメジャーコードである確率およびCのマイナーコードである確率乃至Bのメジャーコードである確率およびBのマイナーコードである確率、並びにセンタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量から求められた、拍の範囲の和音がCのメジャーコードである確率およびCのマイナーコードである確率乃至Bのメジャーコードである確率およびBのマイナーコードである確率のうち、最も高い確率のコードを正解コードとする。
【０１８３】
また、コード判別部２４は、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量から求められた、拍の範囲の和音がCのメジャーコードである確率およびCのマイナーコードである確率乃至Bのメジャーコードである確率およびBのマイナーコードである確率、並びにセンタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量から求められた、拍の範囲の和音がCのメジャーコードである確率およびCのマイナーコードである確率乃至Bのメジャーコードである確率およびBのマイナーコードである確率の平均確率の最も高いコードを正解コードとする。例えば、コード判別部２４は、Cのメジャーコードである確率およびCのマイナーコードである確率乃至Bのメジャーコードである確率およびBのマイナーコードである確率のそれぞれについて、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量から求められた確率とセンタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量から求められた確率との平均値を求めて、この平均値である平均確率のうち最も高い確率のコードを正解コードとする。
【０１８４】
ステップＳ４８において、コード判別部２４は、正解コードをビート毎のコードとして出力して、処理は終了する。なお、この場合、例えば、コード判別部２４は、ビート毎のコードとして、そのコードのコードネームを出力する。
【０１８５】
このように、音声信号から、その楽曲の和音をより正確に判別することができるようになる。
【０１８６】
また、コード判別部２４は、確率を求めることなく、音階の順のそれぞれの高さの音のそれぞれのエネルギを示す特徴量から、ルートを判別するとともに、メジャーの和音であるかマイナーの和音であるかを判別するように構成することもできる。
【０１８７】
図２７は、確率を求めることなく、音階の順のそれぞれの高さの音のそれぞれのエネルギを示す特徴量から、ルートを判別するとともに、メジャーの和音であるかマイナーの和音であるかを判別する場合の、コード判別部２４の構成の他の例を示すブロック図である。
【０１８８】
コード判別部２４は、正解コード判別部９１から構成される。
【０１８９】
正解コード判別部９１は、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量、並びにセンタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量から、ルートを判別するとともに、メジャーの和音であるかマイナーの和音であるかを判別する。例えば、正解コード判別部９１は、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量、並びにセンタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量から、直接、正解コードを示すインデックスを出力する。
【０１９０】
図２８は、正解コード判別部９１から構成されるコード判別部２４による、ビート毎のコード判別の処理の他の例の詳細を説明するフローチャートである。
【０１９１】
ステップＳ６１において、コード判別部２４は、ビート毎特徴量抽出部２３から、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量、並びにセンタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量を含むビート毎のコード判別用特徴量を取得する。
【０１９２】
ステップＳ６２において、コード判別部２４の正解コード判別部９１は、正解コードを判別する。例えば、ステップＳ６２において、正解コード判別部９１は、Cのメジャーコード、Cのマイナーコード、C#のメジャーコード、C#のマイナーコード、Dのメジャーコード、Dのマイナーコード、D#のメジャーコード、D#のマイナーコード、Eのメジャーコード、Eのマイナーコード、Fのメジャーコード、Fのマイナーコード、F#のメジャーコード、F#のマイナーコード、Gのメジャーコード、Gのマイナーコード、G#のメジャーコード、G#のマイナーコード、Aのメジャーコード、Aのマイナーコード、A#のメジャーコード、A#のマイナーコード、Bのメジャーコード、およびBのマイナーコードのうちの、拍の範囲の正しい和音を示す正解コードを判別する。
【０１９３】
ステップＳ６３において、コード判別部２４は、正解コードをビート毎のコードとして出力して、処理は終了する。なお、この場合も、コード判別部２４は、ビート毎のコードとして、そのコードのコードネームを出力することができる。
【０１９４】
次に、コード判別部２４を作成するための、特徴量による学習について説明する。
【０１９５】
図２９は、コード判別部２４を作成するための、特徴量による学習を行う信号処理装置１０１の構成の例を示すブロック図である。図２９において、図１に示す場合と同様の部分には同一の符号を付してあり、その説明は省略する。
【０１９６】
信号処理装置１０１は、ビート検出部２１、センタ除去部２２、ビート毎特徴量抽出部２３、およびコード判別学習部１２１から構成される。
【０１９７】
コード判別学習部１２１は、ビート毎特徴量抽出部２３から供給されるビート毎のコード判別用特徴量と、ビート毎のコード判別用特徴量で示される拍の範囲のビート毎のコードから、音声信号の拍の範囲の和音の判別を学習する。すなわち、コード判別学習部１２１は、特徴量からの特徴量で示される音声信号の拍の範囲の和音の判別を、特徴量と特徴量で示される音声信号の拍の範囲の正しい和音とにより学習する。
【０１９８】
コード判別学習部１２１に供給されるビート毎のコードは、図３０で示されるように、ビート毎のコード判別用特徴量で示される拍の範囲の正しいコードを示す。すなわち、この場合、１２の拍の範囲についてのビート毎のコード判別用特徴量に対応するビート毎のコードは、その１２の拍の範囲のそれぞれの、C,C,C,C,Am,Am,Am,Am,Em,Em,Em、およびEmである正しいコードを示す。
【０１９９】
次に、図３１のフローチャートを参照して、コード判別学習の処理を説明する。ステップＳ１０１乃至ステップＳ１０４のそれぞれは、図１２のステップＳ１１乃至ステップＳ１４のそれぞれと同様なので、その説明は省略する。
【０２００】
ステップＳ１０５において、コード判別学習部１２１は、ビート毎のコード判別の学習の処理を実行して、処理は終了する。
【０２０１】
ステップＳ１０５のビート毎のコード判別の学習の処理は、例えば、ルートであるかの判別を学習するための処理とメジャーかマイナーかの判別を学習するための処理からなる。
【０２０２】
図３２は、ルートであるかの判別を学習するためのビート毎のコード判別学習の処理を説明するフローチャートである。ステップＳ１２１において、コード判別学習部１２１は、元の音声信号からのビート毎のコード判別用特徴量を取得する。すなわち、この場合、コード判別学習部１２１は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、元信号ルート判別用特徴量を取得する。
【０２０３】
ステップＳ１２２において、コード判別学習部１２１は、正解ルートのデータが最初に来るように、元信号ルート判別用特徴量である、取得したビート毎のコード判別用特徴量をシフトする。
【０２０４】
例えば、図３３で示されるように、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量の元信号ルート判別用特徴量において、C,C#,D,D#,E,F,F#,G,G#,A,A#、およびBのそれぞれの音名の音のエネルギを示すデータが順に配置され、ビート毎のコード判別用特徴量に対応するビート毎のコードで示される正しいコード（正解コード）が、Dである場合、コード判別学習部１２１は、元信号ルート判別用特徴量を、Dの音名の音のエネルギを示すデータが元信号ルート判別用特徴量の最初に配置されるように、元信号ルート判別用特徴量を２回シフトする。
【０２０５】
すなわち、コード判別学習部１２１は、C,C#,D,D#,E,F,F#,G,G#,A,A#,およびBのそれぞれの音名の音のエネルギを示すデータが順に配置されるように、元信号ルート判別用特徴量における音のエネルギを示すデータの配置をシフトし、さらに、D,D#,E,F,F#,G,G#,A,A#,B,C、およびC#,のそれぞれの音名の音のエネルギを示すデータが順に配置されるように、元信号ルート判別用特徴量における音のエネルギを示すデータの配置をシフトする。
【０２０６】
ステップＳ１２３において、コード判別学習部１２１は、正解ルートのデータが最初に来るようにシフトした、元信号ルート判別用特徴量であるビート毎のコード判別用特徴量を正解データに追加する。
【０２０７】
ステップＳ１２４において、コード判別学習部１２１は、シフトしたビート毎のコード判別用特徴量を１音分さらにシフトし、元信号ルート判別用特徴量である、そのビート毎のコード判別用特徴量を不正解データに追加する。
【０２０８】
ステップＳ１２５において、コード判別学習部１２１は、ステップＳ１２４を１１回繰り返したか否かを判定し、ステップＳ１２４が１１回繰り返されるまで、手続きは、ステップＳ１２４に戻る。
【０２０９】
ステップＳ１２５において、ステップＳ１２４を１１回繰り返したと判定された場合、手続きはステップＳ１２６に進み、コード判別学習部１２１は、全てのビートについて処理したか否かを判定し、全てのビートを処理していないと判定された場合、手続きはステップＳ１２１に戻り、次のビートについて上述した処理が繰り返される。
【０２１０】
ステップＳ１２６において、全てのビートについて処理したと判定された場合、手続きは、ステップＳ１２７に進み、コード判別学習部１２１は、元信号ルート判別用特徴量によって作成した正解データおよび不正解データから、ビート毎のコード判別用特徴量の最初のデータの音がルートであるかどうかを判別する判別部を機械学習で作成する。
【０２１１】
例えば、図３４に示されるように、コード判別学習部１２１は、GP（Genetic Programming）または各種回帰解析などにより、元信号ルート判別用特徴量によって作成された正解データである、最初のデータの音がルートとされているビート毎のコード判別用特徴量の入力に対してTrueを出力し、元信号ルート判別用特徴量によって作成された不正解データである、最初のデータの音がルート以外の音とされているビート毎のコード判別用特徴量の入力に対してFalseを出力するように、ルート判別部６４の学習を行う。
【０２１２】
ステップＳ１２８において、コード判別学習部１２１は、センタ成分を除去した音声信号からのビート毎のコード判別用特徴量を取得する。すなわち、この場合、コード判別学習部１２１は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、センタ除去済みルート判別用特徴量を取得する。
【０２１３】
ステップＳ１２９において、コード判別学習部１２１は、正解ルートのデータが最初に来るように、センタ除去済みルート判別用特徴量である、取得したビート毎のコード判別用特徴量をシフトする。
【０２１４】
例えば、センタ除去済みルート判別用特徴量において、C,C#,D,D#,E,F,F#,G,G#,A,A#、およびBのそれぞれの音名の音のエネルギを示すデータが順に配置され、ビート毎のコード判別用特徴量に対応するビート毎の正解コードが、Eである場合、コード判別学習部１２１は、センタ除去済みルート判別用特徴量を、Eの音名の音のエネルギを示すデータがセンタ除去済みルート判別用特徴量の最初に配置されるように、センタ除去済みルート判別用特徴量を４回シフトする。
【０２１５】
ステップＳ１３０において、コード判別学習部１２１は、正解ルートのデータが最初に来るようにシフトした、センタ除去済みルート判別用特徴量であるビート毎のコード判別用特徴量を正解データに追加する。
【０２１６】
ステップＳ１３１において、コード判別学習部１２１は、シフトしたビート毎のコード判別用特徴量を１音分さらにシフトし、センタ除去済みルート判別用特徴量である、そのビート毎のコード判別用特徴量を不正解データに追加する。
【０２１７】
ステップＳ１３２において、コード判別学習部１２１は、ステップＳ１３１を１１回繰り返したか否かを判定し、ステップＳ１３１が１１回繰り返されるまで、手続きは、ステップＳ１３１に戻る。
【０２１８】
ステップＳ１３２において、ステップＳ１３１を１１回繰り返したと判定された場合、ステップＳ１３３に進み、コード判別学習部１２１は、全てのビートについて処理したか否かを判定し、全てのビートを処理していないと判定された場合、手続きはステップＳ１２８に戻り、次のビートについて上述した処理が繰り返される。
【０２１９】
ステップＳ１３３において、全てのビートについて処理したと判定された場合、ステップＳ１３４に進み、コード判別学習部１２１は、センタ除去済みルート判別用特徴量によって作成した正解データおよび不正解データから、ビート毎のコード判別用特徴量の最初のデータの音がルートであるかどうかを判別する判別部を機械学習で作成して、処理は終了する。
【０２２０】
例えば、コード判別学習部１２１は、GPまたは各種回帰解析などにより、センタ除去済みルート判別用特徴量によって作成された正解データである、最初のデータの音がルートとされているビート毎のコード判別用特徴量の入力に対してTrueを出力し、センタ除去済みルート判別用特徴量によって作成された不正解データである、最初のデータの音がルート以外の音とされているビート毎のコード判別用特徴量の入力に対してFalseを出力するように、ルート判別部６２の学習を行う。
【０２２１】
次に、図３５を参照して、メジャーかマイナーかの判別を学習するためのビート毎のコード判別学習の処理を説明する。ステップＳ１５１において、コード判別学習部１２１は、元の音声信号からのビート毎のコード判別用特徴量を取得する。すなわち、この場合、コード判別学習部１２１は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、元信号メジャーマイナー判別用特徴量を取得する。
【０２２２】
ステップＳ１５２において、コード判別学習部１２１は、正解ルートのデータが最初に来るように、元信号メジャーマイナー判別用特徴量である、取得したビート毎のコード判別用特徴量をシフトする。
【０２２３】
ステップＳ１５３において、コード判別学習部１２１は、ビート毎のコード判別用特徴量に対応するビートの正しいコードがメジャーであるか否かを判定し、メジャーであると判定された場合、手続きは、ステップＳ１５４に進む。ステップＳ１５４において、コード判別学習部１２１は、正解ルートのデータが最初に来るようにシフトされた、元信号メジャーマイナー判別用特徴量である、ビート毎のコード判別用特徴量をTrueのデータに追加して、手続きは、ステップＳ１５６に進む。
【０２２４】
ステップＳ１５３において、正しいコードがメジャーでない、すなわちマイナーであると判定された場合、手続きは、ステップＳ１５５に進む。ステップＳ１５５において、コード判別学習部１２１は、正解ルートのデータが最初に来るようにシフトされた、元信号メジャーマイナー判別用特徴量である、ビート毎のコード判別用特徴量をFalseのデータに追加して、手続きは、ステップＳ１５６に進む。
【０２２５】
ステップＳ１５６において、コード判別学習部１２１は、全てのビートについて処理したか否かを判定し、全てのビートを処理していないと判定された場合、手続きはステップＳ１５１に戻り、次のビートについて、上述した処理が繰り返される。
【０２２６】
ステップＳ１５６において、全てのビートを処理したと判定された場合、手続きはステップＳ１５７に進む。ステップＳ１５７において、コード判別学習部１２１は、元信号メジャーマイナー判別用特徴量によって作成したTrueのデータおよびFalseのデータから、ビート毎のコード判別用特徴量の最初のデータの音がルートである場合、メジャーかマイナーかを判別する判別部を機械学習で作成する。
【０２２７】
例えば、図３６に示されるように、コード判別学習部１２１は、GPまたは各種回帰解析などにより、メジャーコードの拍の範囲から抽出された元信号メジャーマイナー判別用特徴量によって作成された、最初のデータの音がルートとされているTrueのデータの入力に対してTrueを出力し、マイナーコードの拍の範囲から抽出された元信号メジャーマイナー判別用特徴量によって作成された、最初のデータの音がルートとされているFalseのデータの入力に対してFalseを出力するように、メジャーマイナー判別部６５の学習を行う。
【０２２８】
ステップＳ１５８において、コード判別学習部１２１は、センタ成分を除去した音声信号からのビート毎のコード判別用特徴量を取得する。すなわち、この場合、コード判別学習部１２１は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、センタ除去済みメジャーマイナー判別用特徴量を取得する。
【０２２９】
ステップＳ１５９において、コード判別学習部１２１は、正解ルートのデータが最初に来るように、センタ除去済みメジャーマイナー判別用特徴量である、取得したビート毎のコード判別用特徴量をシフトする。
【０２３０】
ステップＳ１６０において、コード判別学習部１２１は、ビート毎のコード判別用特徴量に対応するビートの正しいコードがメジャーであるか否かを判定し、メジャーであると判定された場合、手続きは、ステップＳ１６１に進む。ステップＳ１６１において、コード判別学習部１２１は、正解ルートのデータが最初に来るようにシフトされた、センタ除去済みメジャーマイナー判別用特徴量である、ビート毎のコード判別用特徴量をTrueのデータに追加して、手続きは、ステップＳ１６３に進む。
【０２３１】
ステップＳ１６０において、正しいコードがメジャーでない、すなわちマイナーであると判定された場合、手続きは、ステップＳ１６２に進む。ステップＳ１６２において、コード判別学習部１２１は、正解ルートのデータが最初に来るようにシフトされた、センタ除去済みメジャーマイナー判別用特徴量である、ビート毎のコード判別用特徴量をFalseのデータに追加して、手続きは、ステップＳ１６３に進む。
【０２３２】
ステップＳ１６３において、コード判別学習部１２１は、全てのビートについて処理したか否かを判定し、全てのビートを処理していないと判定された場合、手続きはステップＳ１５８に戻り、上述した処理が繰り返される。
【０２３３】
ステップＳ１６３において、全てのビートを処理したと判定された場合、手続きはステップＳ１６４に進む。ステップＳ１６４において、コード判別学習部１２１は、センタ除去済みメジャーマイナー判別用特徴量によって作成したTrueのデータおよびFalseのデータから、ビート毎のコード判別用特徴量の最初のデータの音がルートである場合、メジャーかマイナーかを判別する判別部を機械学習で作成して、処理は終了する。
【０２３４】
例えば、コード判別学習部１２１は、GPまたは各種回帰解析などにより、メジャーコードの拍の範囲から抽出されたセンタ除去済みメジャーマイナー判別用特徴量によって作成された、最初のデータの音がルートとされているTrueのデータの入力に対してTrueを出力し、マイナーコードの拍の範囲から抽出されたセンタ除去済みメジャーマイナー判別用特徴量によって作成された、最初のデータの音がルートとされているFalseのデータの入力に対してFalseを出力するように、メジャーマイナー判別部６３の学習を行う。
【０２３５】
次に、正解コード判別部９１を作成する場合の学習について説明する。
【０２３６】
図３７は、ルートであるかの判別とメジャーかマイナーかの判別とを学習するためのビート毎のコード判別学習の処理を説明するフローチャートである。
【０２３７】
ステップＳ１８１において、コード判別学習部１２１は、元の音声信号からのビート毎のコード判別用特徴量を取得する。すなわち、この場合、コード判別学習部１２１は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量を取得する。
【０２３８】
ステップＳ１８２において、コード判別学習部１２１は、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量であるビート毎のコード判別用特徴量と、ビート毎のコード判別用特徴量に対応するビート毎のコードによって示される正しいコードの名前である正解コード名とを、教師データに追加する。
【０２３９】
ステップＳ１８３において、コード判別学習部１２１は、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量であるビート毎のコード判別用特徴量と正解コード名とを、１音分シフトして、シフトしたビート毎のコード判別用特徴量と正解コード名とを教師データに追加する。
【０２４０】
ステップＳ１８４において、コード判別学習部１２１は、ステップＳ１８３を１１回繰り返したか否かを判定し、ステップＳ１８３が１１回繰り返されるまで、手続きは、ステップＳ１８３に戻る。
【０２４１】
ステップＳ１８４において、ステップＳ１８３を１１回繰り返したと判定された場合、手続きはステップＳ１８５に進む。
【０２４２】
例えば、図３８で示されるように、ビート毎のコード判別用特徴量に対応するビート毎のコードによって示される正しいコードの名前である正解コード名がDである場合、C,C#,D,D#,E,F,F#,G,G#,A,A#、およびBのそれぞれの音名の音のエネルギを示すデータが順に配置されている元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量が、Dである正解コード名と共に、教師データに追加される。
【０２４３】
そして、コード判別学習部１２１は、C#,D,D#,E,F,F#,G,G#,A,A#,B、およびCのそれぞれの音名の音のエネルギを示すデータが順に配置されるように、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量における音のエネルギを示すデータの配置をシフトし、正解コード名をC#にシフトする。コード判別学習部１２１は、C#,D,D#,E,F,F#,G,G#,A,A#,B、およびCのそれぞれの音名の音のエネルギを示すデータが順に配置されている元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量と、C#である正解コード名と共に、教師データに追加する。
【０２４４】
さらに、コード判別学習部１２１は、D,D#,E,F,F#,G,G#,A,A#,B,C、およびC#のそれぞれの音名の音のエネルギを示すデータが順に配置されるように、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量における音のエネルギを示すデータの配置をさらにシフトし、正解コード名をDにシフトする。コード判別学習部１２１は、D,D#,E,F,F#,G,G#,A,A#,B,C、およびC#のそれぞれの音名の音のエネルギを示すデータが順に配置されている元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量と、Dである正解コード名と共に、教師データに追加する。
【０２４５】
このように、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量における、音のエネルギを示すデータの配置のシフトが１１回繰り返されて、１つの元信号ルート判別用特徴量から、１２のデータが教師データに追加され、１つの元信号メジャーマイナー判別用特徴量から、１２のデータが教師データに追加されることになる。
【０２４６】
ステップＳ１８５において、コード判別学習部１２１は、センタ成分を除去した音声信号からのビート毎のコード判別用特徴量を取得する。すなわち、この場合、コード判別学習部１２１は、ビート毎特徴量抽出部２３から供給されたビート毎のコード判別用特徴量のうちの、センタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量を取得する。
【０２４７】
ステップＳ１８６において、コード判別学習部１２１は、センタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量であるビート毎のコード判別用特徴量と、ビート毎のコード判別用特徴量に対応するビート毎のコードによって示される正しいコードの名前である正解コード名とを、教師データに追加する。
【０２４８】
ステップＳ１８７において、コード判別学習部１２１は、センタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量であるビート毎のコード判別用特徴量と正解コード名とを、１音分シフトして、シフトしたビート毎のコード判別用特徴量と正解コード名とを教師データに追加する。
【０２４９】
ステップＳ１８８において、コード判別学習部１２１は、ステップＳ１８７を１１回繰り返したか否かを判定し、ステップＳ１８７が１１回繰り返されるまで、手続きは、ステップＳ１８７に戻る。
【０２５０】
ステップＳ１８８において、ステップＳ１８７を１１回繰り返したと判定された場合、手続きはステップＳ１８９に進む。
【０２５１】
ステップＳ１８９において、コード判別学習部１２１は、全てのビートについて処理したか否かを判定し、全てのビートを処理していないと判定された場合、手続きはステップＳ１８１に戻り、次のビートについて上述した処理が繰り返される。
【０２５２】
ステップＳ１８９において、全てのビートについて処理したと判定された場合、手続きは、ステップＳ１９０に進み、コード判別学習部１２１は、作成した教師データから、正解コード名を判別する判別部を機械学習で作成して、処理は終了する。
【０２５３】
例えば、ステップＳ１９０において、コード判別学習部１２１は、kNN（k-Nearest Neighbor）、SVM（Support Vector Machine）、Naive Bayes、最も距離が近いコードを正解するマハラノビス距離、または最も確率が高いコードを正解とするGMM（Gaussian Mixture Model）などにより、作成した教師データから、正解コード名を判別する判別部を機械学習で作成する。
【０２５４】
このように、コード判別学習部１２１は、作成した教師データから、元信号ルート判別用特徴量および元信号メジャーマイナー判別用特徴量、並びにセンタ除去済みルート判別用特徴量およびセンタ除去済みメジャーマイナー判別用特徴量から正解コードを判別する正解コード判別部９１の学習を行う。
【０２５５】
以上のように、音声信号を信号処理するようにした場合には、楽曲の和音を判別することができる。また、ステレオ信号である音声信号から、左右の中央に定位する音声の成分であるセンタ成分を除去し、センタ成分が除去された音声信号から、所定の範囲における、１２平均律の音程のそれぞれの高さの音のそれぞれの特徴を示す特徴量を抽出し、特徴量を用いてその範囲の和音を判別するようにした場合には、音声信号から、その楽曲の和音をより正確に判別することができる。
【０２５６】
なお、信号処理装置１１は、音声信号を処理する機器であれば良く、例えば、外部から供給された音声信号を処理する機器や、音声信号を記録して再生する据え置きの機器や、携帯型の機器として構成することができる。
【０２５７】
また、以上において、基準音のエネルギを示すデータが特徴量の最初に配置される例を説明したが、これに限らず、基準音のエネルギのデータを、特徴量の最後または中央など、特徴量における任意の位置に配置するようにしてもよい。
【０２５８】
なお、音声信号の拍の範囲の和音を判別すると説明したが、これに限らず、小節の範囲、所定の数の拍の範囲など、音声信号の所定の範囲の和音を判別するようにしてもよい。この場合、和音を判別する範囲おける、音声信号の特徴量が抽出される。
【０２５９】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０２６０】
図３９は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU（Central Processing Unit）２０１は、ROM（Read Only Memory）２０２、または記憶部２０８に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）２０３には、CPU２０１が実行するプログラムやデータなどが適宜記憶される。これらのCPU２０１、ROM２０２、およびRAM２０３は、バス２０４により相互に接続されている。
【０２６１】
CPU２０１にはまた、バス２０４を介して入出力インタフェース２０５が接続されている。入出力インタフェース２０５には、キーボード、マウス、マイクロホンなどよりなる入力部２０６、ディスプレイ、スピーカなどよりなる出力部２０７が接続されている。CPU２０１は、入力部２０６から入力される指令に対応して各種の処理を実行する。そして、CPU２０１は、処理の結果を出力部２０７に出力する。
【０２６２】
入出力インタフェース２０５に接続されている記憶部２０８は、例えばハードディスクからなり、CPU２０１が実行するプログラムや各種のデータを記憶する。通信部２０９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【０２６３】
また、通信部２０９を介してプログラムを取得し、記憶部２０８に記憶してもよい。
【０２６４】
入出力インタフェース２０５に接続されているドライブ２１０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア２１１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部２０８に転送され、記憶される。
【０２６５】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図３９に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)、光磁気ディスクを含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２１１、または、プログラムが一時的もしくは永続的に格納されるROM２０２や、記憶部２０８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部２０９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０２６６】
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２６７】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２６８】
【図１】本発明の一実施の形態の信号処理装置の構成を示すブロック図である。
【図２】音声信号から判別されるコードの例を示す図である。
【図３】音声信号からのビートの検出の例を示す図である。
【図４】ビート検出部の構成の一例を示すブロック図である。
【図５】アタック情報の例を示す図である。
【図６】アタック情報の例を示す図である。
【図７】基本ビート周期を説明する図である。
【図８】テンポの決定を説明する図である。
【図９】ビートの位相の修正を説明する図である。
【図１０】テンポの修正を説明する図である。
【図１１】コード判別部の構成の一例を示すブロック図である。
【図１２】コード判別の処理を説明するフローチャートである。
【図１３】音声信号からのセンタ成分の除去の例を説明する図である。
【図１４】センタ除去部の構成の一例を示すブロック図である。
【図１５】音声信号における、複数のオクターブのそれぞれの１２平均律のそれぞれの高さの１２の音のエネルギの分布の例を示す図である。
【図１６】音声信号からのセンタ成分の除去の例を説明する図である。
【図１７】拍の範囲のそれぞれにおけるコードの判別を説明する図である。
【図１８】音声信号の拍の範囲からの特徴量の抽出を説明する図である。
【図１９】音階の順の音のエネルギを示す特徴量の生成を説明する図である。
【図２０】ビート毎のコード判別用特徴量を示す図である。
【図２１】ビート毎のコード判別の処理の例を説明するフローチャートである。
【図２２】コード判別部における処理を説明する図である。
【図２３】コード判別部における処理を説明する図である。
【図２４】判別関数の出力の例を示す図である。
【図２５】コード判別部によって求められる確率を説明する図である。
【図２６】コード判別部によって求められる確率を説明する図である。
【図２７】コード判別部の構成の他の例を示すブロック図である。
【図２８】ビート毎のコード判別の処理の他の例の詳細を説明するフローチャートである。
【図２９】コード判別部を作成するための、特徴量による学習を行う信号処理装置の構成の例を示すブロック図である。
【図３０】ビート毎のコード判別用特徴量で示される拍の範囲のコードの例を示す図である。
【図３１】コード判別学習の処理を説明するフローチャートである。
【図３２】ルートであるかの判別を学習するためのビート毎のコード判別学習の処理を説明するフローチャートである。
【図３３】元信号ルート判別用特徴量のシフトを説明する図である。
【図３４】ビート毎のコード判別用特徴量の最初のデータの音がルートであるかどうかの判別の学習を説明する図である。
【図３５】メジャーかマイナーかの判別を学習するためのビート毎のコード判別学習の処理を説明するフローチャートである。
【図３６】メジャーかマイナーかの判別の学習を説明する図である。
【図３７】ルートであるかの判別とメジャーかマイナーかの判別とを学習するためのビート毎のコード判別学習の処理を説明するフローチャートである。
【図３８】ビート毎のコード判別用特徴量および正解コード名のシフトを説明する図である。
【図３９】パーソナルコンピュータの構成の例を示すブロック図である。
【符号の説明】
【０２６９】
１１  信号処理装置，  ２１  ビート検出部，  ２２  センタ除去部，  ２３  ビート毎特徴量抽出部，  ２４  コード判別部，  ４１  アタック情報抽出部，  ４２  基本ビート周期検出部，  ４３  テンポ決定部，  ４４  楽曲特徴量抽出部，  ４５  テンポ修正部，  ６１  シフトレジスタ，  ６２  ルート判別部，  ６３  メジャーマイナー判別部，  ６４  ルート判別部，  ６５  メジャーマイナー判別部，  ６６  確率計算部，  ８１  DFTフィルタバンク，  ８２  DFTフィルタバンク，  ８３  マスク部，  ８４  DFTフィルタバンク，  ８５  DFTフィルタバンク，  ９１  正解コード判別部，  １２１  コード判別学習部，  ２０１  ＣＰＵ，  ２０２  ＲＯＭ，  ２０３  ＲＡＭ，  ２０８  記憶部，  ２１１  リムーバブルメディア
【図１】
0004315180.tif 000002
【図２】
0004315180.tif 000003
【図３】
0004315180.tif 000004
【図４】
0004315180.tif 000005
【図５】
0004315180.tif 000006
【図６】
0004315180.tif 000007
【図７】
0004315180.tif 000008
【図８】
0004315180.tif 000009
【図９】
0004315180.tif 000010
【図１０】
0004315180.tif 000011
【図１１】
0004315180.tif 000012
【図１２】
0004315180.tif 000013
【図１３】
0004315180.tif 000014
【図１４】
0004315180.tif 000015
【図１５】
0004315180.tif 000016
【図１６】
0004315180.tif 000017
【図１７】
0004315180.tif 000018
【図１８】
0004315180.tif 000019
【図１９】
0004315180.tif 000020
【図２０】
0004315180.tif 000021
【図２１】
0004315180.tif 000022
【図２２】
0004315180.tif 000023
【図２３】
0004315180.tif 000024
【図２４】
0004315180.tif 000025
【図２５】
0004315180.tif 000026
【図２６】
0004315180.tif 000027
【図２７】
0004315180.tif 000028
【図２８】
0004315180.tif 000029
【図２９】
0004315180.tif 000030
【図３０】
0004315180.tif 000031
【図３１】
0004315180.tif 000032
【図３２】
0004315180.tif 000033
【図３３】
0004315180.tif 000034
【図３４】
0004315180.tif 000035
【図３５】
0004315180.tif 000036
【図３６】
0004315180.tif 000037
【図３７】
0004315180.tif 000038
【図３８】
0004315180.tif 000039
【図３９】
0004315180.tif 000040