(57)【特許請求の範囲】
【請求項１】
対象楽曲を構成する楽音が時間軸に沿って推移した楽音推移を取得する楽音推移取得手段と、
前記対象楽曲を模擬した楽曲の楽譜を表し、該楽曲にて用いられる音源毎に、前記対象楽曲にて用いられる音源から出力される個々の音を模擬した出力音について、少なくとも音高及び出力タイミングが規定された楽譜トラックを含む楽譜データに基づいて、全ての楽譜トラックに規定された前記出力音が、前記楽譜データにおける時間軸に沿って推移した出力音推移を取得する出力音推移取得手段と、
前記楽音推移取得手段にて取得した楽音推移から抽出した該楽音推移の特性を表す楽音情報と、前記出力音推移取得手段にて取得した出力音推移から抽出した該出力音推移の特性を表す出力音情報とを比較した結果に基づき、前記出力音の音高が、該出力音に対応する楽音の音高に一致するように前記楽譜データの音高補正量を補正量の一つとして導出する音高補正量導出手段と、前記楽音情報と前記出力音情報との比較結果に基づいて、前記出力音の出力タイミングが、該出力音に対応する楽音の演奏開始タイミングに一致するように前記楽譜データの時間補正量を補正量の一つとして導出する時間補正量導出手段とを有し、前記音高補正量導出手段、及び前記時間補正量導出手段のうち少なくとも一方に、前記補正量の導出を実行させる補正量導出手段と、
前記補正量導出手段にて導出した補正量に従って、前記出力音をシフトすることで修正出力音へと修正した前記楽譜データである修正楽譜データを生成する修正手段と、
前記修正手段で生成された修正楽譜データにおける全ての楽譜トラックに規定された前記修正出力音が、前記修正楽譜データにおける時間軸に沿って推移した修正音推移を取得する修正音推移取得手段と、
前記修正音推移取得手段にて取得した修正音推移から導出した該修正音推移全体での平均振幅と、前記楽音推移取得手段にて取得した楽音推移から導出した該楽音推移全体での平均振幅との比率である音量比率を導出する比率導出手段と、
前記楽音推移取得手段で取得した楽音推移に含まれる周波数と各周波数における強度とを表す振幅スペクトルである楽音振幅スペクトルを、前記対象楽曲に時間軸に沿って単位時間毎に導出する楽音解析手段と、
前記修正手段で生成された修正楽譜データにおける楽譜トラックの一つである対象トラックに規定された前記修正出力音が、前記修正楽譜データにおける時間軸に沿って推移した特定音推移を取得する特定音推移取得手段と、
前記特定音推移取得手段で取得した特定音推移に含まれる周波数と各周波数における強度とを表し、かつその各周波数における強度に前記比率導出手段で導出した音量比率を乗じた特定音振幅スペクトルを、前記修正楽譜データの時間軸に沿って単位時間毎に導出する特定音解析手段と、
前記楽音解析手段で導出された楽音振幅スペクトルにおける周波数における強度と、前記特定音解析手段で導出された特定音振幅スペクトルにおける周波数における強度との比を表す振幅比率を、各周波数について導出する振幅比率導出手段と、
前記振幅比率導出手段で導出された振幅比率それぞれを、前記楽音振幅スペクトルの各周波数における強度に乗じた結果である分離スペクトルから、時間軸に沿った音の推移である区間推移を導出する区間推移導出手段と、
前記区間推移導出手段にて導出した区間推移を前記対象楽曲の時間軸に沿って配することで、前記楽音推移において、前記対象トラックに対応する音源にて出力される対象音が時間軸に沿って推移した対象音推移を生成する音源分離手段と
を備えることを特徴とする音源分離装置。
【請求項２】
前記音高補正量導出手段は、
前記楽音推移の全体にわたって含まれる周波数と各周波数における強度とを表す楽音音高分布を、前記楽音情報の一つとして導出すると共に、前記出力音推移の全体にわたって含まれる周波数と各周波数における強度とを表す出力音高分布を、前記出力音情報の一つとして導出する分布導出手段を備え、
前記分布導出手段にて導出された出力音高分布と楽音音高分布との相関値を表す音高相関値を、前記楽音音高分布の予め規定された規定位置から前記出力音高分布を周波数軸に沿ってシフトさせる毎に導出し、それらの導出された音高相関値の中で、値が最大となる音高相関値に対応する前記規定位置からの周波数軸に沿ったシフト量を、前記音高補正量として導出することを特徴とする請求項１に記載の音源分離装置。
【請求項３】
前記分布導出手段は、
前記楽音音高分布及び前記出力音高分布について、各周波数における強度を正規化して導出することを特徴とする請求項２に記載の音源分離装置。
【請求項４】
前記時間補正量導出手段は、
前記楽音推移から、時間軸に沿った該楽音推移の非調波成分における変化の推移を表す楽音変化を、前記楽音情報の一つとして導出すると共に、前記出力音推移から、時間軸に沿った該出力音推移の非調波成分における変化の推移を表す出力音変化を、前記出力音情報の一つとして導出する変化導出手段と、
前記変化導出手段にて導出された楽音変化と出力音変化との相関値を表す時間相関値を、前記楽音変化と前記出力音変化とに設定された設定位置を一致させて前記出力音変化を時間軸に沿って伸縮する毎に導出すると共に、前記設定位置を規定範囲内で時間軸に沿って順次変更する時間相関導出手段とを備え、
前記時間相関導出手段にて導出された時間相関値の中で、値が最大となる時間相関値に対応する前記出力音変化の時間軸に沿った伸縮率及び設定位置を、前記時間補正量として導出することを特徴とする請求項１〜請求項３のいずれか一項に記載の音源分離装置。
【請求項５】
前記時間補正量導出手段は、
前記楽音推移から、時間軸に沿った該楽音推移の非調波成分における変化の推移を表す楽音変化を、前記楽音情報の一つとして導出すると共に、前記出力音推移から、時間軸に沿った該出力音推移の非調波成分における変化の推移を表す出力音変化を、前記出力音情報の一つとして導出する変化導出手段と、
前記変化導出手段にて導出された楽音変化と出力音変化との相関値を表す時間相関値を、前記楽音変化と前記出力音変化とに設定された設定位置を一致させて前記出力音変化を時間軸に沿って伸縮する毎に導出すると共に、前記設定位置を規定範囲内で時間軸に沿って順次変更する時間相関導出手段とを備え、
前記時間相関導出手段にて導出された時間相関値の中で、値が最大となる時間相関値に対応する前記出力音変化の時間軸に沿った伸縮率及び設定位置を、前記時間補正量として導出し、
前記変化導出手段は、
前記音高補正量導出手段にて導出された音高補正量に従って、音高がシフトされた出力音を前記修正出力音とした修正楽譜データに基づいて、前記修正音推移取得手段で取得された修正音推移を、前記出力音推移とする
ことを特徴とする請求項請求項２または請求項３に記載の音源分離装置。
【請求項６】
前記変化導出手段は、
前記対象楽曲においてテンポ一定の区間である対象区間毎に、前記楽音変化を導出し、前記対象区間に対応する区間毎に、前記出力音変化を導出することを特徴とする請求項４または請求項５に記載の音源分離装置。
【請求項７】
前記音源分離手段は、
前記区間推移導出手段にて導出された区間推移を前記楽音推移から減算した残留楽音推移を導出して、その導出した残留楽音推移を記憶装置に記憶する記憶制御手段と、
前記区間推移導出手段での区間推移の導出を、前記対象トラックを順次変更して実行すると共に、前記区間推移が導出されると、その導出された区間推移を前記記憶装置に記憶された残留楽音推移から減算して、当該記憶装置に記憶された残留楽音推移を更新する更新手段と
を備えることを特徴とする請求項１から請求項６のいずれか一項に記載の音源分離装置。
【請求項８】
対象楽曲を構成する楽音が時間軸に沿って推移した楽音推移を取得する楽音推移取得手順と、
前記対象楽曲を模擬した楽曲の楽譜を表し、該楽曲にて用いられる音源毎に、前記対象楽曲にて用いられる音源から出力される個々の音を模擬した出力音について、少なくとも音高及び出力タイミングが規定された楽譜トラックを含む楽譜データに基づいて、全ての楽譜トラックに規定された前記出力音が、前記楽譜データにおける時間軸に沿って推移した出力音推移を取得する出力音推移取得手順と、
前記楽音推移取得手順にて取得した楽音推移から抽出した該楽音推移の特性を表す楽音情報と、前記出力音推移取得手順にて取得した出力音推移から抽出した該出力音推移の特性を表す出力音情報とを比較した結果に基づき、前記出力音の音高が、該出力音に対応する楽音の音高に一致するように前記楽譜データの音高補正量を補正量の一つとして導出する音高補正量導出手順と、前記楽音情報と前記出力音情報との比較結果に基づき、前記出力音の出力タイミングが、該出力音に対応する楽音の演奏開始タイミングに一致するように前記楽譜データの時間補正量を補正量の一つとして導出する時間補正量導出手順とを有し、前記音高補正量導出手順、及び前記時間補正量導出手順のうち少なくとも一方に、前記補正量の導出を実行させる補正量導出手順と、
前記補正量導出手順にて導出した補正量に従って、前記出力音をシフトすることで修正出力音へと修正した前記楽譜データである修正楽譜データを生成する修正手順と、
前記修正手順で生成された修正楽譜データにおける全ての楽譜トラックに規定された前記修正出力音が、前記修正楽譜データにおける時間軸に沿って推移した修正音推移を取得する修正音推移取得手順と、
前記修正音推移取得手順にて取得した修正音推移から導出した該修正音推移全体での平均振幅と、前記楽音推移取得手順にて取得した楽音推移から導出した該楽音推移全体での平均振幅との比率である音量比率を導出する比率導出手順と、
前記楽音推移取得手順で取得した楽音推移に含まれる周波数と各周波数における強度とを表す振幅スペクトルである楽音振幅スペクトルを、前記対象楽曲に時間軸に沿って単位時間毎に導出する楽音解析手順と、
前記修正手順で生成された修正楽譜データにおける楽譜トラックの一つである対象トラックに規定された前記修正出力音が、前記修正楽譜データにおける時間軸に沿って推移した特定音推移を取得する特定音推移取得手順と、
前記特定音推移取得手順で取得した特定音推移に含まれる周波数と各周波数における強度とを表し、かつその各周波数における強度に前記比率導出手順で導出した音量比率を乗じた特定音振幅スペクトルを、前記修正楽譜データの時間軸に沿って単位時間毎に導出する特定音解析手順と、
前記楽音解析手順で導出された楽音振幅スペクトルにおける周波数における強度と、前記特定音解析手順で導出された特定音振幅スペクトルにおける周波数における強度との比を表す振幅比率を、各周波数について導出する振幅比率導出手順と、
前記振幅比率導出手順で導出された振幅比率それぞれを、前記楽音振幅スペクトルの各周波数における強度に乗じた結果である分離スペクトルから、時間軸に沿った音の推移である区間推移を導出する区間推移導出手順と、
前記区間推移導出手順にて導出した区間推移を前記対象楽曲の時間軸に沿って配することで、前記楽音推移において、前記対象トラックに対応する音源にて出力される対象音が時間軸に沿って推移した対象音推移を生成する音源分離手順とを、
コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の音源から発生した音が重畳した混合音から、少なくとも一つの音源にて発生した音を分離する音源分離装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、発話された音声や物音といった主要音に、対象楽曲が演奏された演奏音（例えば、ＢＧＭとして演奏された音）が混合した音を混合音とし、対象楽曲を構成する楽音の音圧が時間軸に沿って推移した既知の楽音波形を用いて、対象楽曲の演奏音を混合音から分離（除去）する音源分離装置が知られている（例えば、特許文献１参照）。
【０００３】
この特許文献１に記載の音源分離装置（以下、従来分離装置とする）において、対象楽曲の演奏音を混合音から分離する際には、まず、混合音の音圧が時間軸に沿って推移した混合波形及び楽音波形の両方について単位時間毎に周波数解析して、それぞれの周波数スペクトルを表す混合音周波数スペクトル及び楽音周波数スペクトルを導出する。そして、混合音周波数スペクトルの各周波数のスペクトル振幅値から、楽音周波数スペクトルの各周波数のスペクトル振幅値を減算することで導出した周波数スペクトルを、逆フーリエ変換して生成した単位波形を時間軸に沿って配置することで、演奏音を分離した混合音の波形を生成、即ち、混合音中の主要音のみを得ている。
【０００４】
ただし、従来分離装置では、楽音周波数スペクトルを混合音周波数スペクトルから減算する際に、当該楽音周波数スペクトルの各スペクトル振幅値が、時間軸及び周波数軸の両方について最も近似する混合音周波数スペクトルのスペクトル振幅値から減算されるように楽音周波数スペクトルを補正している。
【０００５】
その補正に用いるパラメータ（即ち、補正量）は、演奏音の音高を補正するためのパラメータ、対象楽曲の時間軸に沿って演奏音を補正するためのパラメータ、及び演奏音の音量を補正するためのパラメータである。各パラメータは、個々の楽音スペクトルに対して一つずつ導出されるものであり、個々のパラメータの導出は、計算を反復することで実行される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許４２７４４１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
つまり、従来分離装置では、一つのパラメータを導出するまでに膨大な回数の計算を繰り返す必要があり、全てのパラメータを導出するまでに要する計算量が多大なもの、ひいては、混合音に含まれる対象音を、該混合音から分離するまでに要する計算量が多大なものとなるという問題があった。
【０００８】
そこで、本発明は、音源分離装置において、混合音に含まれる対象音を該混合音から分離するまでに要する計算量を低減することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するためになされた本発明の音源分離装置は、楽音推移取得手段と、出力音推移取得手段と、補正量導出手段と、修正手段と、修正音推移取得手段と、比率導出手段と、楽音解析手段と、特定音推移取得手段と、特定音解析手段と、振幅比率導出手段と、区間推移導出手段と、音源分離手段とを備える。
【００１０】
このうち、楽音推移取得手段は、対象楽曲を構成する楽音が時間軸に沿って推移した楽音推移を取得し、出力音推移取得手段は、対象楽曲を模擬した楽曲の楽譜を表し、該楽曲にて用いられる音源毎に、対象楽曲にて用いられる音源から出力される個々の音を模擬した出力音について、少なくとも音高及び出力タイミングが規定された楽譜トラックを含む楽譜データに基づいて、全ての楽譜トラックに規定された出力音が、楽譜データにおける時間軸に沿って推移した出力音推移を取得する。
【００１１】
すると、補正量導出手段が、音高補正量導出手段、及び時間補正量導出手段のうち少なくとも一方に、補正量の導出を実行させ、その導出された補正量に従って、修正手段が、出力音をシフトすることで修正出力音へと修正した楽譜データ（以下、修正楽譜データ）を生成する。ただし、本発明における音高補正量導出手段は、楽音推移から抽出した該楽音推移の特性を表す楽音情報と、出力音推移から抽出した該出力音推移の特性を表す出力音情報とを比較した結果に基づき、出力音の音高が、該出力音に対応する楽音の音高に一致するように楽譜データの音高補正量を補正量の一つとして導出する。また、時間補正量導出手段は、楽音情報と出力音情報との比較結果に基づき、出力音の出力タイミングが、該出力音に対応する楽音の演奏開始タイミングに一致するように楽譜データの時間補正量を補正量の一つとして導出する。
【００１２】
さらに、修正音推移取得手段が、修正楽譜データにおける全ての楽譜トラックに規定された修正出力音が、修正楽譜データにおける時間軸に沿って推移した修正音推移を取得し、比率導出手段が、その取得した修正音推移から導出した該修正音推移全体での平均振幅と、楽音推移取得手段にて取得した楽音推移から導出した該楽音推移全体での平均振幅との比率（以下、音量比率）を導出する。
【００１３】
そして、楽音解析手段が、楽音推移取得手段で取得した楽音推移に含まれる周波数と各周波数における強度とを表す振幅スペクトルである楽音振幅スペクトルを、対象楽曲に時間軸に沿って単位時間毎に導出し、特定音推移取得手段が、修正手段で生成された修正楽譜データにおける楽譜トラックの一つである対象トラックに規定された修正出力音が、修正楽譜データにおける時間軸に沿って推移した特定音推移を取得し、特定音解析手段が、その取得した特定音推移に含まれる周波数と各周波数における強度（即ち、振幅やパワー）とを表し、かつその各周波数における強度に音量比率を乗じた特定音振幅スペクトルを、修正楽譜データの時間軸に沿って単位時間毎に導出する。
【００１４】
さらに、振幅比率導出手段が、その導出された楽音振幅スペクトルにおける周波数における強度と、特定音解析手段で導出された特定音振幅スペクトルにおける周波数における強度との比を表す振幅比率を、各周波数について導出して、区間推移導出手段が、振幅比率導出手段で導出された振幅比率それぞれを、楽音振幅スペクトルの各周波数における強度に乗じた結果である分離スペクトルから、時間軸に沿った音の推移である区間推移を導出する。すると、音源分離手段が、区間推移導出手段にて導出した区間推移を対象楽曲の時間軸に沿って配することで、楽音推移において、対象トラックに対応する音源にて出力される対象音が時間軸に沿って推移した対象音推移を生成する。
【００１５】
つまり、本発明の音源分離装置では、楽譜データに規定された出力音の音量を補正するための補正量（以下、音量補正量とする）を、修正音推移全体での平均振幅と楽音推移全体での平均振幅との比率（即ち、音量比率）としている。この音量比率の導出は、計算を反復して実行する必要がないため、音量補正量の導出に要する計算量を低減することができる。
【００１６】
この結果、仮に、音量比率以外の補正量である音高補正量や時間補正量についての導出方法が、従来分離装置での導出方法と同様の方法であったとしても、本発明の音源分離装置においては、全ての補正量を導出するために要する計算量を低減できる。
【００１７】
したがって、本発明の音源分離装置によれば、楽音推移から、該楽音推移に含まれる対象音推移を抽出するまでに要する計算量を低減することができる。
本発明における音高補正量導出手段では、分布導出手段が、楽音推移の全体にわたって含まれる周波数と各周波数における強度とを表す楽音音高分布を、楽音情報の一つとして導出すると共に、出力音推移の全体にわたって含まれる周波数と各周波数における強度とを表す出力音高分布を、出力音情報の一つとして導出する。これと共に、音高補正量導出手段は、それらの導出された出力音高分布と楽音音高分布との相関値を表す音高相関値を、楽音音高分布の予め規定された規定位置から出力音高分布を周波数軸に沿ってシフトさせる毎に導出し、それらの導出された音高相関値の中で、値が最大となる音高相関値に対応する規定位置からの周波数軸に沿ったシフト量を、音高補正量として導出しても良い（請求項２）。
【００１８】
この音高補正量は、楽音音高分布と出力音高分布とが最大相関となるときにおける楽音音高分布の規定位置からの周波数軸に沿ったシフト量であり、この音高補正量の導出は、楽音音高分布の規定位置から、出力音高分布を規定方向に沿ってシフトさせることによって行われる。
【００１９】
したがって、本発明の音源分離装置によれば、音高補正量を導出するために、計算を反復させる回数を低減でき、この結果、音高補正量の導出に要する計算量を、従来分離装置における音高補正量の導出方法に比べて低減できる。
【００２０】
この結果、請求項２に係る音源分離装置によれば、楽音推移から、該楽音推移に含まれる対象音推移を抽出するまでに要する計算量を、より確実に低減できる。
特に、このように導出される音高補正量に従って楽譜データを修正すれば、修正後の出力音推移（即ち、修正音推移）に含まれる周波数及び各周波数における強度の比率を、楽音推移に含まれる周波数及び各周波数における強度の比率に、より近似させることができる。この結果、楽音推移から、該楽音推移に含まれる対象音推移を分離する分離精度を向上させることができる。
【００２１】
本発明において、楽音音高分布及び出力音高分布の各周波数における強度は、正規化されていても良い（請求項３）。
このような本発明の音源分離装置によれば、楽音推移に含まれる各周波数における強度と、出力音推移に含まれる各周波数における強度とが大きく異なっていたとしても、楽譜データに規定された出力音の音高が対象楽曲の音高に一致するように楽譜データを修正できる。この結果、本発明の音源分離装置によれば、楽音推移における振幅と、出力音推移における振幅とに大きな差が生じていても、修正音推移から、該修正音推移に含まれる対象音推移を精度良く分離することができる。
【００２２】
さらに、本発明における時間補正量導出手段では、変化導出手段が、楽音推移から、時間軸に沿った該楽音推移の非調波成分における変化の推移を表す楽音変化を、楽音情報の一つとして導出すると共に、出力音推移から、時間軸に沿った該出力音推移の非調波成分における変化の推移を表す出力音変化を、出力音情報の一つとして導出する。そして、時間相関導出手段が、それらの導出された楽音変化と出力音変化との相関値を表す時間相関値を、楽音変化と出力音変化とに設定された設定位置を一致させて出力音変化を時間軸に沿って伸縮する毎に導出すると共に、設定位置を規定範囲内で時間軸に沿って順次変更しても良い。この場合、時間補正量導出手段は、その導出された時間相関値の中で、値が最大となる時間相関値に対応する出力音変化の時間軸に沿った伸縮率及び設定位置を、時間補正量として導出しても良い（請求項４）。
【００２３】
一般的に、楽音推移や出力音推移に含まれる非調波成分は、打楽器（例えば、ドラムやベース）や楽器のアタック音に多く含まれており、時間のずれに対する相関度合いの変化が大きい。
【００２４】
よって、本発明の音源分離装置において、楽譜データに規定された出力音の出力タイミングを（打楽器データを基にした）時間補正量に従って修正すれば、修正楽譜データによって表される楽曲と、対象楽曲とのリズム、ひいては、修正楽譜データにおける個々の出力音の出力タイミングと、楽音の演奏開始タイミングとを容易に一致させることができる。
【００２５】
なお、本発明における変化導出手段は、音高補正量導出手段にて導出された音高補正量に従って、音高がシフトされた出力音を修正出力音とした修正楽譜データに基づいて、修正音取得手段で取得された修正音推移を、出力音推移としても良い（請求項５）。
【００２６】
ただし、この場合、請求項５における補正量導出手段を形成する変化導出手段、時間相関導出手段、及び時間量導出手段は、請求項４に記載の変化導出手段、時間相関導出手段、及び時間量導出手段と同様に構成されている必要がある。
【００２７】
このような本発明の音源分離装置では、時間補正量を導出する前に、楽譜データに規定された個々の出力音の音高が、対象楽曲を構成する楽音の音高に一致するように修正されている。したがって、本発明の音源分離装置によれば、楽譜データに規定された出力音の音高と、対象楽曲を構成する楽音の音高との間にズレが生じていることに起因して、時間補正量の導出精度が低下することを防止できる。
【００２８】
さらに、本発明において、変化導出手段は、楽音変化及び出力音変化を、対象楽曲においてテンポ一定の区間毎に導出しても良い（請求項６）。
このような音源分離装置によれば、楽譜データにおける出力音の出力タイミングの修正を、対象楽曲においてテンポが一定の区間毎に実行することができる。
【００２９】
また、本発明の音源分離装置における音源分離手段は、記憶制御手段が、区間推移導出手段にて導出された区間推移を楽音推移から減算した残留楽音推移を導出して、その導出した残留楽音推移を記憶装置に記憶する。そして、更新手段が、区間推移導出手段での区間推移の導出を、対象トラックを順次変更して実行すると共に、区間推移が導出されると、その導出された区間推移を記憶装置に記憶された残留楽音推移から減算して、当該記憶装置に記憶された残留楽音推移を更新しても良い（請求項７）。
【００３０】
このような本発明の音源分離装置においては、楽音推移に含まれる対象音推移を、該楽音推移から分離する際に、一つの対象トラックに対応する楽音推移についてのみ分離すれば、その対象トラックに対応する音源にて発生した音のみを除去した残留楽音推移を生成することができる。すなわち、本発明の音源分離装置によれば、対象楽曲に対して、いわゆるマイナスワンを実行することができる。
【００３１】
また、例えば、楽音として歌声が含まれた楽音推移を取得した場合、その楽音推移から、全ての楽譜トラックについての対象音推移を減算すれば、楽譜データにおける時間軸に沿った歌声の推移が残る。つまり、本発明の楽器音分離装置によれば、対象楽曲に含まれる歌声の推移を抽出することができる。
【００３２】
なお、本発明は、コンピュータを音源分離装置として機能させるためのプログラムであっても良い。本発明が、このようなプログラムとしてなされている場合、その本発明のプログラムでは、楽音推移取得手順と、出力音推移取得手順と、補正量導出手順と、修正手順と、修正音推移取得手順と、比率導出手順と、楽音解析手順と、特定音推移取得手順と、特定音解析手順と、振幅比率導出手順と、区間推移導出手順と、音源分離手順とをコンピュータに実行させる必要がある（請求項８）。
【００３３】
本発明の楽音推移取得手順では、対象楽曲を構成する楽音が時間軸に沿って推移した楽音推移を取得し、出力音推移取得手順では、対象楽曲を模擬した楽曲の楽譜を表し、該楽曲にて用いられる音源毎に、対象楽曲にて用いられる音源から出力される個々の音を模擬した出力音について、少なくとも音高及び出力タイミングが規定された楽譜トラックを含む楽譜データに基づいて、全ての楽譜トラックに規定された出力音が、前記楽譜データにおける時間軸に沿って推移した出力音推移を取得する。
【００３４】
すると、補正量導出手順では、音高補正量導出手順及び時間補正量導出手順のうち少なくとも一方に、補正量の導出を実行させ、修正手順では、導出した補正量に従って、出力音をシフトすることで修正出力音へと修正した楽譜データである修正楽譜データを生成する。ただし、音高補正量導出手順では、楽音推移から抽出した該楽音推移の特性を表す楽音情報と、出力音推移から抽出した該出力音推移の特性を表す出力音情報とを比較した結果に基づき、出力音の音高が、該出力音に対応する楽音の音高に一致するように楽譜データの音高補正量を補正量の一つとして導出する。一方、時間補正量導出手順では、楽音情報と出力音情報との比較結果に基づき、出力音の出力タイミングが、該出力音に対応する楽音の演奏開始タイミングに一致するように楽譜データの時間補正量を補正量の一つとして導出する。
【００３５】
さらに、修正音推移取得手順では、修正手順で生成された修正楽譜データにおける全ての楽譜トラックに規定された修正出力音が、修正楽譜データにおける時間軸に沿って推移した修正音推移を取得し、比率導出手順では、その取得した修正音推移全体での平均振幅と、楽音推移全体での平均振幅との比率である音量比率を導出する。また、楽音解析手順では、楽音推移に含まれる周波数と各周波数における強度とを表す楽音振幅スペクトルを、対象楽曲に時間軸に沿って単位時間毎に導出する。
【００３６】
そして、特定音推移取得手順にて、修正楽譜データにおける楽譜トラックの一つである対象トラックに規定された修正出力音が、修正楽譜データにおける時間軸に沿って推移した特定音推移を取得すると、特定音解析手順では、特定音推移に含まれる周波数と各周波数における強度とを表し、かつその各周波数における強度に音量比率を乗じた特定音振幅スペクトルを、修正楽譜データの時間軸に沿って単位時間毎に導出し、振幅比率導出手順では、楽音振幅スペクトルにおける周波数における強度と、特定音振幅スペクトルにおける周波数における強度との比を表す振幅比率を、各周波数について導出する。
【００３７】
すると、区間推移導出手順では、振幅比率それぞれを、楽音振幅スペクトルの各周波数における強度に乗じた結果である分離スペクトルから、時間軸に沿った音の推移である区間推移を導出し、音源分離手順では、その区間推移を対象楽曲の時間軸に沿って配することで、楽音推移において、対象トラックに対応する音源にて出力される対象音が時間軸に沿って推移した対象音推移を生成する。
【００３８】
本発明のプログラムが、このようになされていれば、例えば、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、ハードディスク等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータにロードさせて起動することや、必要に応じて通信回線を介してコンピュータに取得させて起動することにより用いることができる。そして、コンピュータに各手順を実行させることで、そのコンピュータを、請求項１に記載された音源分離装置として機能させることができる。
【図面の簡単な説明】
【００３９】
【図１】実施形態における音源分離装置の概略構成を示すブロック図である。
【図２】音源分離処理の処理手順を示すフローチャートである。
【図３】音高補正処理の処理手順を示すフローチャートである。
【図４】音高補正処理の処理内容を説明する説明図である。
【図５】時間補正処理の処理手順を示すフローチャートである。
【図６】時間補正処理の処理内容を説明する説明図である。
【図７】音量補正処理の処理手順を示すフローチャートである。
【図８】トラック分離処理の処理手順を示すフローチャートである。
【図９】トラック分離処理の処理内容を説明する説明図である。
【発明を実施するための形態】
【００４０】
以下に本発明の実施形態を図面と共に説明する。
本発明が適用された音源分離装置は、複数の音源（例えば、各種の楽器や人）にて発生する音が重畳するように予め生成された１つの楽曲（以下、対象楽曲とする）にて用いられる全音源から出力された音から、対象楽曲における１つの音源から出力された音を分離する装置である。この音源分離装置は、本実施形態では、図１に示す情報処理装置１０によって構成されている。
〈音源分離装置の構成について〉
図１に示すように、情報処理装置１０は、通信部１１と、音響データ読取部１２と、入力受付部１３と、表示部１４と、音声入力部１５と、音声出力部１６と、音源モジュール１７と、記憶部１８と、制御部２０とを備えている。
【００４１】
このうち、通信部１１は、情報処理装置１０をネットワーク（例えば、専用回線やＷＡＮ）に接続し、その接続されたネットワークを介して外部と通信を行うものである。
音響データ読取部１２は、記憶媒体に記憶されている音響データを時間軸に沿って順次読み取る装置（例えば、ＣＤやＤＶＤの読取装置）である。その音響データは、対象楽曲を構成する全ての楽音（即ち、全音源から出力される全ての楽音）の音圧が時間軸に沿って推移したアナログ波形を標本化（サンプリング）したデータである。
【００４２】
そして、入力受付部１３は、外部からの操作に従って情報や指令の入力を受け付ける入力機器（例えば、キーボードやポインティングデバイス）である。表示部１４は、画像を表示する表示装置（例えば、液晶ディスプレイやＣＲＴ等）である。また、音声入力部１５は、音声を電気信号に変換して制御部２０に入力する装置（いわゆるマイクロホン）である。音声出力部１６は、制御部２０からの電気信号を音声に変換して出力する装置（いわゆるスピーカ）である。
【００４３】
さらに、音源モジュール１７は、対象楽曲を模擬した楽曲（以下、対応楽曲とする）の楽譜を表す楽譜データに基づいて、音源からの音を模擬した音（以下、出力音）を出力する装置である。本実施形態においては、音源モジュール１７は、周知のＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）音源によって構成されている。そして、音源モジュール１７において、出力音として音が模擬される音源（以下、模擬音源とする）は、鍵盤楽器（例えば、ピアノやパイプオルガンなど）、弦楽器（例えば、バイオリンやビオラ、ギター、琴など）、打楽器（例えば、ドラムやシンバル、ティンパニー、木琴など）、及び管楽器（例えば、クラリネットやトランペット、フルート、尺八など）などであり、予め登録されている。
【００４４】
次に、楽譜データは、対応楽曲を区別するデータである識別データと、当該対応楽曲にて用いられる模擬音源毎の楽譜を表す楽譜トラックとを少なくとも有している。本実施形態における楽譜データは、周知のＭＩＤＩ規格によって表されている。
【００４５】
このうち、各楽譜トラックは、音源モジュール１７が出力する出力音について規定されており、模擬音源に応じてインデックス番号ｍｔｉ（ｍｔｉ＝１〜ＭＴＮ）が割り振られている。その楽譜トラックに規定される内容として、少なくとも、音源モジュール１７が出力音を出力する期間（以下、音符長）、及び個々の出力音の音高（いわゆるノートナンバー）、個々の出力音の強さ（いわゆるアタック、ベロシティ、ディケイなど）や、対応楽曲を分割する区間（例えば、Ａメロやサビなど）におけるテンポがある。
【００４６】
ただし、楽譜トラックでの音符長は、当該出力音の出力を開始するまでの当該楽曲の演奏開始からの時刻を表す出力タイミング（いわゆるノートオンタイミング）と、当該出力音の出力を終了するまでの当該楽曲の演奏開始からの時刻を表す終了タイミング（いわゆるノートオフタイミング）とによって規定されている。なお、以下では、楽譜トラックに規定された出力音を演奏音とも称す。
【００４７】
また、記憶部１８は、記憶内容を読み書き可能に構成された不揮発性の記憶装置（例えば、ハードディスク装置）である。この記憶部１８には、処理プログラムや楽譜データが少なくとも格納される。
【００４８】
さらに、制御部２０は、電源が切断されても記憶内容を保持する必要がある処理プログラムやデータを格納するＲＯＭ２１と、処理プログラムやデータを一時的に格納するＲＡＭ２２と、ＲＯＭ２１やＲＡＭ２２に記憶された処理プログラムに従って各処理（各種演算）を実行するＣＰＵ２３とを少なくとも有した周知のコンピュータを中心に構成されている。
【００４９】
なお、本実施形態における処理プログラムとして、楽譜データの楽譜トラックに規定された個々の演奏音（即ち、出力音）が、対象楽曲を構成しかつ該出力音に対応する楽音に一致するように修正した楽譜データを用いて、対象楽曲における全音源から出力された音から、一つの音源から出力された音を分離する音源分離処理を、制御部２０が実行するものが予め用意されている。
〈音源分離処理の処理内容について〉
次に、制御部２０が実行する音源分離処理について説明する。
【００５０】
この音源分離処理は、入力受付部１３を介して、当該音源分離処理を起動するための起動指令が入力されると、実行が開始されるものである。
そして、図２に示すように、音源分離処理は、起動されると、入力受付部１３を介して入力された情報によって指定される楽曲に対応する楽譜データを取得する（Ｓ１１０（Ｓは、ステップを意味する））。
【００５１】
続いて、音響データ読取部１２にて読み取った音響データを、対象楽曲を構成する楽音が時間軸に沿って推移した波形である楽音推移として取得する（Ｓ１２０）。ただし、本実施形態の音響データ読取部１２には、本音源分離処理が起動される前に、Ｓ１１０にて取得する楽譜データに対応する対象楽曲の音響データを記憶した記憶媒体が配置されているものとする。
【００５２】
そして、Ｓ１１０にて取得した楽譜データと、Ｓ１２０で取得した楽音推移とに基づいて、対象楽曲を構成する楽音の音高に、演奏音の音高が一致するように、当該楽譜データを修正する音高補正処理を実行する（Ｓ１３０）。以下、演奏音について修正が実行された楽譜データを修正楽譜データと称し、修正された演奏音を修正演奏音（本発明の修正出力音に相当）と称す。
【００５３】
さらに、音高補正処理によって、楽音の音高に音高が一致するように修正された演奏音の出力タイミングが、楽音の演奏開始タイミングに一致するように、修正楽譜データを修正する時間補正処理を実行する（Ｓ１５０）。続いて、時間補正処理によって、楽音の演奏開始タイミングに出力タイミングが一致するように修正された演奏音の強さが、楽音の強さ（即ち、音量）に一致するように、修正楽譜データを修正するための音量補正量を導出する音量補正処理を実行する（Ｓ１７０）。
【００５４】
そして、演奏音の音高や出力タイミングが修正された修正楽譜データ、及び音量補正量を用いて、楽音推移から、一つの音源から出力された音が時間軸に沿って推移した波形である対象音推移を生成するトラック分離処理を実行する（Ｓ１８０）。
【００５５】
その後、本音源分離処理を終了する。
〈音高補正処理の処理内容について〉
次に、音源分離処理のＳ１３０にて起動される音高補正処理について説明する。
【００５６】
この音高補正処理は、起動されると、図３に示すように、先のＳ１１０にて取得した楽譜データに含まれる全ての楽譜トラックに基づいて、全ての演奏音が時間軸に沿って推移した波形である出力音推移を取得する（Ｓ３１０）。具体的に、本実施形態における出力音推移の取得は、全ての楽譜トラックに規定されている個々の演奏音を、楽譜データの時間軸に沿って音源モジュール１７に出力させ、音声入力部１５を介して受け付けることで実行する。
【００５７】
続いて、その取得した出力音推移を、時間軸に沿って設定された単位時間毎に周波数解析（本実施形態では、離散フーリエ変換）して、各単位時間の出力音推移に含まれる周波数、及び各周波数における強度を表すパワースペクトルを導出する（Ｓ３２０）。その導出されたパワースペクトルに基づいて、各周波数における強度を、時間軸に沿って周波数毎に相加平均した平均出力音スペクトルを導出する（Ｓ３３０）。その導出した平均出力音スペクトルの周波数における強度を、境界が互いに隣接するように予め規定された周波数範囲（例えば、半音単位、以下、規定音高範囲）毎に平均化して代表値を求める（Ｓ３４０）。さらに、そのＳ３４０で平均化した平均出力音スペクトルにおける周波数における強度を、分散「１」、平均「０」となるように正規化した正規化出力音スペクトル（図４（Ａ）参照）を導出する（Ｓ３５０）。
【００５８】
なお、本実施形態のＳ３４０にて求める代表値は、規定音高範囲に含まれる周波数における強度を平均化することで求めることに限らず、規定音高範囲における中心値に対応する周波数における強度を代表値としても良い。この場合、具体的には、２０Ｃｅｎｔ毎（半音の５分の１毎）に、２０Ｃｅｎｔグリッドに一番近い周波数の値（パワー）を抽出する処理を行う。
【００５９】
続いて、先のＳ１２０にて取得した楽音推移を、時間軸に沿って設定された単位時間毎に周波数解析して、各単位時間の楽音推移に含まれる周波数、及び各周波数における強度を表すパワースペクトルを導出する（Ｓ３６０）。その導出されたパワースペクトルに基づいて、各周波数における強度を、時間軸に沿って周波数毎に相加平均した平均楽音スペクトルを導出する（Ｓ３７０）。その導出した平均楽音スペクトルの周波数における強度を、規定音高範囲毎に平均化して代表値とし（Ｓ３８０）、そのＳ３８０で平均化した平均楽音スペクトルにおける周波数における強度を、分散「１」、平均「０」となるように正規化した正規化楽音スペクトル（図４（Ｂ）参照）を導出する（Ｓ３９０）。
【００６０】
なお、本実施形態のＳ３８０にて求める代表値は、規定音高範囲に含まれる周波数における強度を平均化することで求めることに限らず、規定音高範囲における中心値に対応する周波数における強度を代表値としても良い。この場合、具体的には、２０Ｃｅｎｔ毎（半音の５分の１毎）に、２０Ｃｅｎｔグリッドに一番近い周波数の値（パワー）を抽出する処理を行う。
【００６１】
そして、詳しくは、後述するように、正規化出力音スペクトルと正規化楽音スペクトルとの相関値（以下、音高相関値とする）を導出する（Ｓ４００）。そして、正規化楽音スペクトルに対する正規化出力音スペクトルのシフト量が予め規定された上限値以上であるか否かを判定する（Ｓ４１０）。その判定の結果、シフト量が上限値未満であれば（Ｓ４１０：ＮＯ）、正規化出力音スペクトルを、周波数軸に沿って予め規定された規定量シフトして（Ｓ４２０）、Ｓ４００へと戻り、音高相関値を再度導出する。
【００６２】
すなわち、本実施形態のＳ４００〜Ｓ４２０では、図４（Ｃ）に示すように、正規化楽音スペクトルに対して、正規化出力音スペクトルを周波数軸に沿って下限値から上限値に達するまでシフトさせつつ、その正規化出力音スペクトルをシフトさせる毎に、音高相関値を導出する。
【００６３】
そして、正規化出力音のシフト量が上限値以上となると（Ｓ４１０：ＹＥＳ）、対象楽曲を構成する楽音の音高に、演奏音の音高を一致させるための補正量（以下、音高補正量とする）を導出する（Ｓ４３０）。本実施形態のＳ４３０では、具体的に、先のＳ４００にて導出された全ての音高相関値の中で、値が最大である音高相関値に対応する正規化出力音スペクトルのシフト量を音高補正量として導出する。
【００６４】
続いて、その導出された音高補正量に従って、楽譜データにおける全ての楽譜トラックに規定された個々の演奏音の音高を修正（シフト）することで、修正楽譜データを生成する（Ｓ４４０）。すなわち、本実施形態のＳ４４０にて生成される修正楽譜データは、演奏音の音高が、予め用意された演奏音の音高から音高補正量シフトされたものとなる。
【００６５】
そして、その後、本音高補正処理を終了し、音源分離処理へと戻る。
つまり、音高補正処理では、楽音推移の特性を表す楽音情報としての正規化楽音スペクトルと、出力音推移の特性を表す出力音情報としての正規化出力音スペクトルとを比較した結果に基づいて導出した一つの音高補正量に従って、楽譜データにおける全ての楽譜トラックに規定された個々の演奏音の音高を修正している。
【００６６】
〈時間補正処理の処理内容について〉
次に、音源分離処理のＳ１５０にて起動される時間補正処理について説明する。
この時間補正処理は、起動されると、図５に示すように、先のＳ４４０にて生成された修正楽譜データに含まれる全ての楽譜トラックに基づいて、全ての修正演奏音が時間軸に沿って推移した波形である修正音推移を取得する（Ｓ５１０）。本実施形態における修正音推移の取得は、Ｓ３１０と同様の方法により実行すれば良い。
【００６７】
続いて、その取得した修正音推移の非調波成分が時間軸に沿って推移した波形である出力音非調波を、該修正音推移から導出し（Ｓ５２０）、さらに、先のＳ１２０で取得した楽音推移の非調波成分が時間軸に沿って推移した波形である楽音非調波を、該楽音推移から導出する（Ｓ５３０）。これらの非調波成分の導出は、予め用意されたフィルタに、修正音推移または楽音推移を通過させることで実行しても良い。
【００６８】
さらに、出力音非調波及び楽音非調波を、それぞれ、時間軸に沿って規定された時間長である特定ブロック毎に分割する（Ｓ５４０）。その分割する特定ブロックは、出力音非調波については、対応楽曲においてテンポが一定であることを表すテンポ一定区間毎である。このテンポ一定区間は、楽譜トラックに規定されたテンポに従って、対応楽曲にてテンポが変更する時刻を、各テンポ一定区間の開始時刻、終了時刻として特定することで決定する。なお、楽音非調波の特定ブロックについては、出力音非調波の特定ブロックを決定した後、出力音非調波の特定ブロックそれぞれの開始時刻、終了時刻に相当する対象楽曲の演奏開始からの時刻を、楽音非調波の特定ブロックそれぞれの開始時刻及び終了時刻として特定することで決定する。
【００６９】
そして、Ｓ５４０にて分割された特定ブロックの中から、一組の特定ブロックを選択し（Ｓ５５０）、その選択された一組の特定ブロックについて、楽音非調波、出力音非調波共に、時間軸に沿った変化を表すユニットデータを生成する（Ｓ５６０）。本実施形態におけるユニットデータは、図６（Ａ）,（Ｂ）に示すように、特定ブロックよりも短い時間長である規定区間毎に、その規定区間内での非調波成分（即ち、楽音非調波，及び出力音非調波）の振幅値を加算する。その上で、加算された振幅値を、正規化することによって生成する。なお、以下では、出力音非調波についてのユニットデータを出力音ユニットデータ（本発明における出力音変化に相当）とし、楽音非調波についてのユニットデータを楽音ユニットデータ（本発明における楽音変化に相当）とする。
【００７０】
続いて、Ｓ５６０で生成した出力音ユニットデータの時間軸上に規定された出力音設定位置を、楽音ユニットデータの時間軸上に規定された楽音設定位置に一致させて、出力音ユニットデータと楽音ユニットデータとの相関値（以下、時間相関値とする）を導出する（Ｓ５７０）。そして、楽音ユニットデータに対する出力音ユニットデータの伸縮率が、予め規定された上限値（伸縮率の上限値）以上であるか否かを判定する（Ｓ５８０）。その判定の結果、楽音ユニットデータの伸縮率が、伸縮率の上限値未満であれば（Ｓ５８０：ＮＯ）、出力音ユニットデータを、時間軸に沿って予め規定された規定量拡大して（Ｓ５９０）、Ｓ５７０へと戻る。
【００７１】
さらに、楽音ユニットデータの伸縮率が、伸縮率の上限値に達していれば（Ｓ５８０：ＹＥＳ）、楽音ユニットデータに対する出力音ユニットデータの時間軸に沿ったシフト量が、予め規定された上限値（シフト量の上限値）以上であるか否かを判定する（Ｓ６００）。その判定の結果、楽音ユニットデータのシフト量が、シフト量の上限値未満であれば（Ｓ６００：ＮＯ）、出力音ユニットデータの設定位置を、予め規定された時間シフトして（Ｓ６１０）、出力音ユニットデータの伸縮率を下限値とした上で、Ｓ５７０へと戻る。
【００７２】
すなわち、本実施形態のＳ５７０〜Ｓ６１０では、図６（Ｃ）に示すように、楽音ユニットデータに対して、出力音ユニットデータの伸縮率が上限値に達するまで拡大する毎に、時間相関値を導出する。そして、このような時間相関値の導出を、楽音ユニットデータに対して、出力音ユニットデータを時間軸に沿ってシフト量の上限値に達するまでシフトさせつつ実行する。
【００７３】
一方、Ｓ６００での判定の結果、出力音ユニットデータのシフト量が、シフト量の上限値以上であれば（Ｓ６００：ＹＥＳ）、対象楽曲を構成する楽音の演奏開始タイミングに、修正出力音の出力タイミングを一致させるための補正量（以下、時間補正量とする）を導出する（Ｓ６２０）。本実施形態のＳ６２０では、具体的に、一組の特定ブロックに対してＳ５７０で導出された全ての時間相関値の中で、値が最大となる時間相関値に対応する出力音ユニットデータの伸縮率及びシフト量を、Ｓ５５０で選択した特定ブロックに対する時間補正量として導出する。
【００７４】
その導出された時間補正量に従って、個々の演奏音の出力タイミングを修正（ここでは、修正演奏音をさらに修正）した修正楽譜データを生成する（Ｓ６３０）。本実施形態のＳ６３０では、Ｓ５５０で選択した特定ブロックに対する時間補正量として導出された、出力音ユニットデータのシフト量と、出力音ユニットデータの伸縮率とに基づいて、演奏音の音高が修正された修正楽譜データにおける当該特定ブロックの開始時刻及び終了時刻を修正する。そして、修正前の演奏音の出力タイミングの間隔比率が維持されるように、修正後の開始時刻、及び終了時刻にて規定される期間に応じて、演奏音の出力タイミングの間隔を伸縮させることで、当該特定ブロックに対する個々の演奏音の出力タイミングを修正した修正楽譜データを生成する。なお、本実施形態のＳ６３０では、演奏音の終了タイミングについても修正する。この演奏音の終了タイミングの修正方法は、演奏音の出力タイミングと同様の方法を用いればよい。
【００７５】
続いて、Ｓ５４０にて分割した全ての特定ブロックに対して、時間補正量を導出したか否かを判定し（Ｓ６４０）、その判定の結果、全ての特定ブロックに対して時間補正量を導出していなければ（Ｓ６４０：ＮＯ）、Ｓ５５０に戻る。そのＳ５５０では、新たな特定ブロックを選択し、Ｓ６３０までのステップを実行する。このＳ５５０では、時間長が長い特定ブロックから順に取得して、該特定ブロックに対する時間補正量を導出する。ただし、時間補正量が既に導出されている特定ブロックに隣接する特定ブロックでは、既に導出されている特定ブロックの修正後の開始時刻または終了時刻を、自特定ブロックでの値として導出する。
【００７６】
一方、Ｓ６４０での判定の結果、全ての特定ブロックに対して時間補正量を導出していれば（Ｓ６４０：ＹＥＳ）、その後、本時間補正処理を終了し、音源分離処理へと戻る。
つまり、時間補正処理では、楽音推移の特性を表す楽音情報としての楽音ユニットデータと、修正音推移の特性を表す出力音情報としての出力音ユニットデータとを比較した結果に基づいて導出した時間補正量に従って、楽譜データにおける全ての楽譜トラックに規定された個々の演奏音の出力タイミングを修正している。
【００７７】
〈音量補正処理の処理内容について〉
次に、音源分離処理のＳ１７０にて起動される音量補正処理について説明する。
この音量補正処理は、起動されると、図７に示すように、先のＳ６４０にて生成された修正楽譜データに含まれる全ての楽譜トラックに基づいて、全ての修正演奏音が時間軸に沿って推移した波形である修正音推移を取得する（Ｓ７１０）。本実施形態における修正音推移の取得は、Ｓ３１０と同様の方法により実行すれば良い。
【００７８】
そのＳ７１０にて取得した修正音推移の振幅を時間軸に沿った全体（全期間）で平均することで、出力音平均振幅を導出し（Ｓ７２０）、さらに、先のＳ１２０にて取得した楽音推移の振幅を時間軸に沿った全体（全期間）で平均することで、楽音平均振幅を取得する（Ｓ７３０）。続いて、Ｓ７２０にて導出した出力音平均振幅と、Ｓ７３０にて導出した楽音平均振幅との比率である音量比率ｋｖを音量補正量として導出する（Ｓ７４０）。
【００７９】
その後、音量補正処理を終了し、音源分離処理へと戻る。
〈トラック分離処理の処理内容について〉
次に、音源分離処理のＳ１８０にて起動されるトラック分離処理について説明する。
【００８０】
このトラック分離処理は、起動されると、図８に示すように、先のＳ１２０で取得した楽音推移の全体を、時間軸に沿って設定された分析時間ｔｗｉ毎に周波数解析（本実施形態では、離散フーリエ変換）し、その周波数解析の結果をＲＡＭ２２（または記憶部１８）に記憶する（Ｓ８１０）。このＳ８１０の周波数解析により、各分析時間ｔｗｉの楽音推移に含まれる周波数、及び各周波数における強度（以下、楽音スペクトル振幅値とする）ｔｕｓｐ（ｔｗｉ，ｆｉ）が、実数部及び虚数部の両方について導出される。また、符合ｆｉは、周波数の区分（即ち、離散フーリエ変換によって導出される周波数区分：単位［ｂｉｎ］）である。
【００８１】
次に、楽譜トラックのインデックス番号ｍｔｉを初期値（本実施形態では、初期値＝０）に設定する（Ｓ８２０）。続いて、設定されている楽譜トラックのインデックス番号（以下、設定インデックスとする）ｍｔｉが、楽譜データにおける最大のインデックス番号（以下、最終インデックス）ＭＴＮ未満であるか否かを判定する（Ｓ８３０）。
【００８２】
そのＳ８３０での判定の結果、設定インデックスｍｔｉが最終インデックスＭＴＮ未満であれば（Ｓ８３０：ＹＥＳ）、設定インデックスｍｔｉを１つインクリメントする（Ｓ８４０）。続いて、対象音推移を初期値に設定する（Ｓ８５０）。本実施形態において、対象音推移の初期値は、音圧が時間軸に沿って全て「０」に設定されたゼロ波形である。
【００８３】
そして、設定インデックスｍｔｉに対応する楽譜トラックの演奏音のインデックス番号（以下、演奏音インデックスとする）ｎｉを初期値（本実施形態では、０とする）に設定する（Ｓ８６０）。続いて、演奏音インデックスｎｉが、設定インデックスｍｔｉに対応する楽譜トラックにおいて、最大のインデックス番号（以下、最終演奏音とする）ＮＮＰＴ（ｍｔｉ）未満であるか否かを判定する（Ｓ８７０）。
【００８４】
そのＳ８７０での判定の結果、演奏音インデックスｎｉが、最終演奏音ＮＮＰＴ（ｍｔｉ）未満であれば（Ｓ８７０：ＹＥＳ）、演奏音インデックスｎｉを規定数インクリメントする（Ｓ８８０）。続いて、今回のＳ８８０でインクリメントされた規定数の演奏音インデックスｎｉに対応する演奏音が、時間軸に沿って推移した波形である特定音推移を取得する（Ｓ８９０）。本実施形態における特定音推移の取得は、Ｓ３１０と同様の方法により実行すれば良い。
【００８５】
そして、取得した特定音推移を、時間軸に沿って設定された分析時間ｔｗｉ毎に周波数解析（ここでは、離散フーリエ変換）する（Ｓ９００）。この周波数解析の結果、特定音推移における分析時間ｔｗｉに含まれる周波数毎に、その周波数における強度（以下、スペクトル振幅値）ｎｔｓｐ（ｔｗｉ，ｆｉ）が、実数部及び虚数部の両方について導出される。
【００８６】
続いて、図９（Ａ）に示すように、先の音量補正量導出処理で導出された音量比率ｋｖを、個々のスペクトル振幅値ｎｔｓｐ（ｔｗｉ，ｆｉ）に乗じた特定音スペクトル振幅値ｎｔｓｐ＿ｎ（ｔｗｉ，ｆｉ）を導出する（Ｓ９１０）。その特定音スペクトル振幅値ｎｔｓｐ＿ｎ（ｔｗｉ，ｆｉ）と、楽音スペクトル振幅値ｔｕｓｐ（ｔｗｉ，ｆｉ）との比を表す振幅比率ｋｒ（ｔｗｉ，ｆｉ）を導出する（Ｓ９２０）。本実施形態のＳ９２０では、振幅比率ｋｒを、周波数区分ｆｉ毎に導出する。ただし、振幅比率ｋｒ（ｔｗｉ，ｆｉ）の値は、特定音スペクトル振幅値ｎｔｓｐ（ｔｗｉ，ｆｉ）が、楽音スペクトル振幅値ｔｕｓｐ（ｔｗｉ，ｆｉ）よりも大きければ、「１」とし、特定音スペクトル振幅値ｎｔｓｐ（ｔｗｉ，ｆｉ）が、楽音スペクトル振幅値ｔｕｓｐ（ｔｗｉ，ｆｉ）よりも小さければ、両スペクトル振幅値の比としている。
【００８７】
そして、楽音スペクトル振幅値ｔｕｓｐ（ｔｗｉ，ｆｉ）に、振幅比率ｋｒを乗算して分離スペクトル振幅値ｎｔｃｐｓｐ（ｔｗｉ，ｆｉ）、即ち、分離スペクトルを導出する（Ｓ９３０）。このＳ９３０では、具体的に、図９（Ｂ）、及び図９（Ｃ）に示すように、実数部及び虚数部それぞれの楽音スペクトル振幅値ｔｕｓｐ（ｔｗｉ，ｆｉ）に、分析時間ｔｗｉと周波数区分ｆｉとの組み合わせに対応する振幅比率ｋｒ（ｔｗｉ，ｆｉ）を乗算する。なお、図９（Ｂ），（Ｃ）中において、実線は、分離スペクトルとして導出されたスペクトル振幅値ｎｔｃｐｓｐ（ｔｗｉ，ｆｉ）であり、破線は、楽音スペクトル振幅値ｔｕｓｐ（ｔｗｉ，ｆｉ）である。
【００８８】
さらに、Ｓ９３０にて導出された分離スペクトル振幅値ｎｔｃｐｓｐ（ｔｗｉ，ｆｉ）を、ＲＡＭ２２（または記憶部１８）に記憶され、対応する時間（期間）における楽音スペクトル振幅値ｔｕｓｐから減算することで、ＲＡＭ２２（または記憶部１８）に記憶された楽音スペクトル振幅値ｔｕｓｐを新たな楽音スペクトル振幅値ｔｕｓｐへと更新する（Ｓ９４０）。
【００８９】
続いて、分離スペクトル振幅値ｎｔｃｐｓｐ（ｔｗｉ，ｆｉ）を逆離散フーリエ変換（ＩＤＦＴ）して、区間推移を導出する（Ｓ９５０）。そして、初期値に設定されている対象音推移のうち、対応する区間について、Ｓ９５０で導出された区間推移へと置き換えることで、新たな対象音推移へと更新する（Ｓ９６０）。
【００９０】
その後、Ｓ８７０へと戻り、演奏音インデックスｎｉが、設定インデックスｍｔｉにおける最終演奏音ＮＮＰＴ（ｍｔｉ）未満であれば（Ｓ８７０：ＹＥＳ）、Ｓ８７０からＳ９６０のステップを繰り返す。そして、演奏音インデックスｎｉが、設定インデックスｍｔｉにおける最終演奏音ＮＮＰＴ（ｍｔｉ）以上となると（Ｓ８７０：ＮＯ）、その時点での対象音推移を記憶部１８に記憶する（Ｓ９７０）。すなわち、音響データから、対象トラックに対応する音源から出力される音（つまり、対象音推移）を分離し終えると、Ｓ９７０を経てＳ８３０へと戻る。
【００９１】
そのＳ９７０を経て戻ったＳ８３０では、設定インデックスｍｔｉが、最終インデックスＭＴＮ未満であれば（Ｓ８３０：ＹＥＳ）、Ｓ８４０からＳ９７０のステップを繰り返す。そして、設定されている設定インデックスｍｔｉが、最終インデックスＭＴＮ以上となると（Ｓ８３０：ＮＯ）、本音源分離処理を終了する。すなわち、楽譜データに含まれる全ての楽譜トラックについて、音響データから対象音推移を生成して分離し終えると、本音源分離処理を終了する。
［実施形態の効果］
以上説明したように、本実施形態の音源分離処理における音量補正処理では、音量比率ｋｖを音量補正量として導出しており、この音量比率ｋｖの導出は、計算を反復して実行する必要がない。
【００９２】
このため、本実施形態の音量補正処理によれば、従来音源分離装置に比べて、音量補正量の導出に要する計算量を低減することができる。
さらに、音源分離処理における音高補正処理では、正規化出力音スペクトルと正規化楽音スペクトルとが最大相関（相関値の中で、値が最大である相関値で、正規化出力音スペクトルと正規化楽音スペクトルとの差分の値が最小）となるときの、正規化楽音スペクトルに対する正規化楽音スペクトルの周波数軸に沿ったシフト量を、音高補正量として導出している。この音高補正量の導出は、正規化出力音スペクトルを周波数軸に沿って、下限値から上限値までシフトさせることによって行われている。
【００９３】
このため、本実施形態の音高補正処理によれば、従来音源分離装置に比べて、音高補正量を導出するために、計算を反復する回数を低減できる。
これらの結果、本実施形態の音源分離処理によれば、従来音源分離装置に比べて、個々の補正量を導出するために要する計算量を削減することができ、ひいては、楽音推移から、該楽音推移に含まれる対象音推移を抽出するまでに要する計算量を低減できる。
【００９４】
なお、本実施形態の音高補正処理では、楽音推移及び出力音推移のパワースペクトルのうち、周波数における強度について正規化することで導出した正規化出力音スペクトル及び正規化楽音スペクトルの比較結果に基づいて、音高補正量を導出している。
【００９５】
したがって、このように導出される音高補正量を用いて、楽譜データに規定された個々の出力音の音高を修正すれば、楽音推移の振幅と、出力音推移の振幅とが大きく異なっていたとしても、修正楽譜データに基づく修正音推移を楽音推移に近づけることができる。
【００９６】
さらに、本実施形態において、正規化出力音スペクトル及び正規化楽音スペクトルは、周波数について半音毎に平均化されているため、楽音の周波数や出力音の周波数に周波数ノイズが吸収されることとなる。このため、正規化出力音スペクトルと正規化楽音スペクトルとの相関の誤差が小さくなり、音高補正量の導出精度を向上させることができる。これにより、修正楽譜データに基づく出力音推移の音高と、楽音推移の音高との一致度をより向上させることができる。
【００９７】
また、本実施形態のデータ修正処理では、音高補正処理を実行して、楽譜データに規定された個々の演奏音の音高が、対象楽曲を構成する楽音の音高に一致するように修正した上で、時間補正処理を実行している。したがって、音源分離装置１０によれば、楽譜データに規定された演奏音の音高と、対象楽曲を構成する楽音の音高との間にズレが生じていることに起因して、時間補正量の導出精度が低下することを防止できる。
【００９８】
特に、本実施形態の時間補正処理では、対象楽曲においてテンポが一定の区間毎に、時間補正量の導出している。このように導出された時間補正量を用いて、出力音の出力タイミングを修正することで、修正楽譜データにおける個々の出力音の出力タイミングを、対象楽曲における個々の楽音の演奏開始タイミングにより正確に一致させることができる。
【００９９】
このような音源分離処理においては、楽音推移に含まれる対象音推移を、該楽音推移から分離する際に、一つの対象トラックに対応する楽音推移についてのみ分離すれば、その対象トラックに対応する音源にて発生した音のみを除去した残留楽音推移を生成することができる。すなわち、本実施形態の音源分離処理によれば、対象楽曲に対して、いわゆるマイナスワンを実行することができる。
【０１００】
特に、本実施形態の音源分離処理において、楽音として歌声が含まれた楽音推移を取得した場合、その楽音推移から全ての楽譜トラックについての区間推移（即ち、対象音推移）を減算すると、歌声の音圧の時間軸に沿った推移が残る。つまり、音源分離装置１０によれば、楽曲における歌声の音圧の推移を抽出することができる。
［その他の実施形態］
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において、様々な態様にて実施することが可能である。
【０１０１】
例えば、上記実施形態の音高補正処理におけるＳ３１０では、全ての楽譜トラックに規定されている個々の出力音を、楽譜データの時間軸に沿って音源モジュール１７に出力させ、音声入力部１５を介して受け付けることで、出力音推移の取得を実行していたが、出力音推移の取得方法は、これに限るものではない。すなわち、出力音推移の取得は、出力音の時間軸に沿った波形を表す音響信号（電気信号）を音源モジュール１７が生成し、その生成された音響信号に従って音声出力部１６が鳴動するように、情報処理装置１０が構成されている場合、音源モジュール１７が生成する音響信号を出力音推移として取得しても良い。
【０１０２】
そして、上記実施形態の時間補正処理では、時間補正量の導出を、特定ブロック毎に実行していたが、時間補正量は、楽曲に対して一つ導出されても良い。
また、上記実施形態における時間補正処理では、時間補正量の導出するときに楽音ユニットデータと比較する出力音ユニットデータを、出力音の音高が修正された修正楽譜データに基づいて取得した修正音推移から生成していたが、この出力音ユニットデータの生成に用いる信号は、例えば、出力音の音高が修正される前の楽譜データに基づいて取得した出力音推移であっても良い。
【０１０３】
さらに、上記実施形態の音量補正処理では、修正楽譜データに基づいて取得した修正音推移を用いて音量比率を導出した修正楽譜データを生成したが、本発明においては、音量比率の導出は、楽譜データに基づく出力音推移を用いて実行しても良い。
【０１０４】
なお、上記実施形態の音源分離処理では、音高補正処理と時間補正処理との両方の処理を実行していたが、音源分離処理で実行する処理としては、音高補正処理と時間補正処理とのうちの少なくとも一方であっても良い。
［実施形態と特許請求の範囲との対応関係］
最後に、上記実施形態の記載と、特許請求の範囲の記載との関係を説明する。
【０１０５】
上記実施形態の音源分離処理におけるＳ１２０が、本発明の楽音推移取得手段に相当し、音高補正処理のＳ３１０及び時間補正処理のＳ５１０が、出力音推移取得手段に相当する。そして、上記実施形態の音高補正処理におけるＳ３２０〜Ｓ４３０、及び時間補正処理におけるＳ５２０〜Ｓ６２０が、本発明の補正量導出手段に相当し、このうち、前者が音高補正量導出手段に、後者が時間補正量導出手段に相当する。
【０１０６】
さらに、上記実施形態の音高補正処理におけるＳ４４０、及び時間補正処理のＳ６３０が、本発明の修正手段に相当し、音量補正処理におけるＳ７１０が、修正音推移取得手段に相当し、音量補正処理におけるＳ７２０〜Ｓ７４０が、比率導出手段に相当する。また、上記実施形態のトラック分離処理におけるＳ８９０が、本発明の特定音推移取得手段に相当し、トラック分離処理におけるＳ９００，Ｓ９１０が、特定音解析手段に相当し、トラック分離処理におけるＳ９２０が、振幅比率導出手段に相当し、トラック分離処理におけるＳ９３０，Ｓ９５０が、区間推移導出手段に相当し、トラック分離処理におけるＳ９４０，Ｓ９６０，Ｓ９７０が、音源分離手段に相当する。
【０１０７】
そして、上記実施形態の音高補正処理におけるＳ３２０〜Ｓ３９０が、本発明の分布導出手段に相当し、時間補正処理のＳ５２０〜Ｓ５６０が、変化導出手段に相当し、時間補正処理のＳ５７０〜Ｓ６１０が、時間相関導出手段に相当する。また、上記実施形態のトラック分離処理におけるＳ９４０が、本発明の記憶制御手段に相当し、トラック分離処理におけるＳ８３０〜Ｓ９７０が、本発明の更新手段に相当する。
【符号の説明】
【０１０８】
１０…情報処理装置（音源分離装置）  １１…通信部  １２…音響データ読取部  １３…入力受付部  １４…表示部  １５…音声入力部  １６…音声出力部  １７…音源モジュール  １８…記憶部  ２０…制御部  ２１…ＲＯＭ  ２２…ＲＡＭ  ２３…ＣＰＵ
【図１】
0005310677.tif 000002
【図２】
0005310677.tif 000003
【図３】
0005310677.tif 000004
【図４】
0005310677.tif 000005
【図５】
0005310677.tif 000006
【図７】
0005310677.tif 000007
【図８】
0005310677.tif 000008
【図９】
0005310677.tif 000009
【図６】
0005310677.tif 000010