説明

音源分離装置、及びプログラム

【課題】音源分離装置において、混合音に含まれる対象音を、該混合音から分離するまでに要する計算量を低減すること。
【解決手段】対象楽曲を構成する楽音が時間軸に沿って推移した波形である楽音推移を取得し(S120)、その取得した楽音推移と楽譜データとに基づいて、対象楽曲を構成する楽音の音高及び演奏開始タイミングに、演奏音の音高及び出力タイミングが一致するように、当該楽譜データを修正して修正楽譜データを生成する(S130,S140)。さらに、音量補正量を導出し(S170)、修正楽譜データ、及び音量補正量を用いて、楽音推移から、一つの音源から出力された音が時間軸に沿って推移した波形である対象音推移を生成する(S180)。ただし、S170では、出力音平均振幅と、楽音平均振幅との比率である音量比率kvを音量補正量として導出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の音源から発生した音が重畳した混合音から、少なくとも一つの音源にて発生した音を分離する音源分離装置、及びプログラムに関する。
【背景技術】
【0002】
従来、発話された音声や物音といった主要音に、対象楽曲が演奏された演奏音(例えば、BGMとして演奏された音)が混合した音を混合音とし、対象楽曲を構成する楽音の音圧が時間軸に沿って推移した既知の楽音波形を用いて、対象楽曲の演奏音を混合音から分離(除去)する音源分離装置が知られている(例えば、特許文献1参照)。
【0003】
この特許文献1に記載の音源分離装置(以下、従来分離装置とする)において、対象楽曲の演奏音を混合音から分離する際には、まず、混合音の音圧が時間軸に沿って推移した混合波形及び楽音波形の両方について単位時間毎に周波数解析して、それぞれの周波数スペクトルを表す混合音周波数スペクトル及び楽音周波数スペクトルを導出する。そして、混合音周波数スペクトルの各周波数のスペクトル振幅値から、楽音周波数スペクトルの各周波数のスペクトル振幅値を減算することで導出した周波数スペクトルを、逆フーリエ変換して生成した単位波形を時間軸に沿って配置することで、演奏音を分離した混合音の波形を生成、即ち、混合音中の主要音のみを得ている。
【0004】
ただし、従来分離装置では、楽音周波数スペクトルを混合音周波数スペクトルから減算する際に、当該楽音周波数スペクトルの各スペクトル振幅値が、時間軸及び周波数軸の両方について最も近似する混合音周波数スペクトルのスペクトル振幅値から減算されるように楽音周波数スペクトルを補正している。
【0005】
その補正に用いるパラメータ(即ち、補正量)は、演奏音の音高を補正するためのパラメータ、対象楽曲の時間軸に沿って演奏音を補正するためのパラメータ、及び演奏音の音量を補正するためのパラメータである。各パラメータは、個々の楽音スペクトルに対して一つずつ導出されるものであり、個々のパラメータの導出は、計算を反復することで実行される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許4274418号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
つまり、従来分離装置では、一つのパラメータを導出するまでに膨大な回数の計算を繰り返す必要があり、全てのパラメータを導出するまでに要する計算量が多大なもの、ひいては、混合音に含まれる対象音を、該混合音から分離するまでに要する計算量が多大なものとなるという問題があった。
【0008】
そこで、本発明は、音源分離装置において、混合音に含まれる対象音を該混合音から分離するまでに要する計算量を低減することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するためになされた本発明の音源分離装置は、楽音推移取得手段と、出力音推移取得手段と、補正量導出手段と、修正手段と、修正音推移取得手段と、比率導出手段と、楽音解析手段と、特定音推移取得手段と、特定音解析手段と、振幅比率導出手段と、区間推移導出手段と、音源分離手段とを備える。
【0010】
このうち、楽音推移取得手段は、対象楽曲を構成する楽音が時間軸に沿って推移した楽音推移を取得し、出力音推移取得手段は、対象楽曲を模擬した楽曲の楽譜を表し、該楽曲にて用いられる音源毎に、対象楽曲にて用いられる音源から出力される個々の音を模擬した出力音について、少なくとも音高及び出力タイミングが規定された楽譜トラックを含む楽譜データに基づいて、全ての楽譜トラックに規定された出力音が、楽譜データにおける時間軸に沿って推移した出力音推移を取得する。
【0011】
すると、補正量導出手段が、音高補正量導出手段、及び時間補正量導出手段のうち少なくとも一方に、補正量の導出を実行させ、その導出された補正量に従って、修正手段が、出力音をシフトすることで修正出力音へと修正した楽譜データ(以下、修正楽譜データ)を生成する。ただし、本発明における音高補正量導出手段は、楽音推移から抽出した該楽音推移の特性を表す楽音情報と、出力音推移から抽出した該出力音推移の特性を表す出力音情報とを比較した結果に基づき、出力音の音高が、該出力音に対応する楽音の音高に一致するように楽譜データの音高補正量を補正量の一つとして導出する。また、時間補正量導出手段は、楽音情報と出力音情報との比較結果に基づき、出力音の出力タイミングが、該出力音に対応する楽音の演奏開始タイミングに一致するように楽譜データの時間補正量を補正量の一つとして導出する。
【0012】
さらに、修正音推移取得手段が、修正楽譜データにおける全ての楽譜トラックに規定された修正出力音が、修正楽譜データにおける時間軸に沿って推移した修正音推移を取得し、比率導出手段が、その取得した修正音推移から導出した該修正音推移全体での平均振幅と、楽音推移取得手段にて取得した楽音推移から導出した該楽音推移全体での平均振幅との比率(以下、音量比率)を導出する。
【0013】
そして、楽音解析手段が、楽音推移取得手段で取得した楽音推移に含まれる周波数と各周波数における強度とを表す振幅スペクトルである楽音振幅スペクトルを、対象楽曲に時間軸に沿って単位時間毎に導出し、特定音推移取得手段が、修正手段で生成された修正楽譜データにおける楽譜トラックの一つである対象トラックに規定された修正出力音が、修正楽譜データにおける時間軸に沿って推移した特定音推移を取得し、特定音解析手段が、その取得した特定音推移に含まれる周波数と各周波数における強度(即ち、振幅やパワー)とを表し、かつその各周波数における強度に音量比率を乗じた特定音振幅スペクトルを、修正楽譜データの時間軸に沿って単位時間毎に導出する。
【0014】
さらに、振幅比率導出手段が、その導出された楽音振幅スペクトルにおける周波数における強度と、特定音解析手段で導出された特定音振幅スペクトルにおける周波数における強度との比を表す振幅比率を、各周波数について導出して、区間推移導出手段が、振幅比率導出手段で導出された振幅比率それぞれを、楽音振幅スペクトルの各周波数における強度に乗じた結果である分離スペクトルから、時間軸に沿った音の推移である区間推移を導出する。すると、音源分離手段が、区間推移導出手段にて導出した区間推移を対象楽曲の時間軸に沿って配することで、楽音推移において、対象トラックに対応する音源にて出力される対象音が時間軸に沿って推移した対象音推移を生成する。
【0015】
つまり、本発明の音源分離装置では、楽譜データに規定された出力音の音量を補正するための補正量(以下、音量補正量とする)を、修正音推移全体での平均振幅と楽音推移全体での平均振幅との比率(即ち、音量比率)としている。この音量比率の導出は、計算を反復して実行する必要がないため、音量補正量の導出に要する計算量を低減することができる。
【0016】
この結果、仮に、音量比率以外の補正量である音高補正量や時間補正量についての導出方法が、従来分離装置での導出方法と同様の方法であったとしても、本発明の音源分離装置においては、全ての補正量を導出するために要する計算量を低減できる。
【0017】
したがって、本発明の音源分離装置によれば、楽音推移から、該楽音推移に含まれる対象音推移を抽出するまでに要する計算量を低減することができる。
本発明における音高補正量導出手段では、分布導出手段が、楽音推移の全体にわたって含まれる周波数と各周波数における強度とを表す楽音音高分布を、楽音情報の一つとして導出すると共に、出力音推移の全体にわたって含まれる周波数と各周波数における強度とを表す出力音高分布を、出力音情報の一つとして導出する。これと共に、音高補正量導出手段は、それらの導出された出力音高分布と楽音音高分布との相関値を表す音高相関値を、楽音音高分布の予め規定された規定位置から出力音高分布を周波数軸に沿ってシフトさせる毎に導出し、それらの導出された音高相関値の中で、値が最大となる音高相関値に対応する規定位置からの周波数軸に沿ったシフト量を、音高補正量として導出しても良い(請求項2)。
【0018】
この音高補正量は、楽音音高分布と出力音高分布とが最大相関となるときにおける楽音音高分布の規定位置からの周波数軸に沿ったシフト量であり、この音高補正量の導出は、楽音音高分布の規定位置から、出力音高分布を規定方向に沿ってシフトさせることによって行われる。
【0019】
したがって、本発明の音源分離装置によれば、音高補正量を導出するために、計算を反復させる回数を低減でき、この結果、音高補正量の導出に要する計算量を、従来分離装置における音高補正量の導出方法に比べて低減できる。
【0020】
この結果、請求項2に係る音源分離装置によれば、楽音推移から、該楽音推移に含まれる対象音推移を抽出するまでに要する計算量を、より確実に低減できる。
特に、このように導出される音高補正量に従って楽譜データを修正すれば、修正後の出力音推移(即ち、修正音推移)に含まれる周波数及び各周波数における強度の比率を、楽音推移に含まれる周波数及び各周波数における強度の比率に、より近似させることができる。この結果、楽音推移から、該楽音推移に含まれる対象音推移を分離する分離精度を向上させることができる。
【0021】
本発明において、楽音音高分布及び出力音高分布の各周波数における強度は、正規化されていても良い(請求項3)。
このような本発明の音源分離装置によれば、楽音推移に含まれる各周波数における強度と、出力音推移に含まれる各周波数における強度とが大きく異なっていたとしても、楽譜データに規定された出力音の音高が対象楽曲の音高に一致するように楽譜データを修正できる。この結果、本発明の音源分離装置によれば、楽音推移における振幅と、出力音推移における振幅とに大きな差が生じていても、修正音推移から、該修正音推移に含まれる対象音推移を精度良く分離することができる。
【0022】
さらに、本発明における時間補正量導出手段では、変化導出手段が、楽音推移から、時間軸に沿った該楽音推移の非調波成分における変化の推移を表す楽音変化を、楽音情報の一つとして導出すると共に、出力音推移から、時間軸に沿った該出力音推移の非調波成分における変化の推移を表す出力音変化を、出力音情報の一つとして導出する。そして、時間相関導出手段が、それらの導出された楽音変化と出力音変化との相関値を表す時間相関値を、楽音変化と出力音変化とに設定された設定位置を一致させて出力音変化を時間軸に沿って伸縮する毎に導出すると共に、設定位置を規定範囲内で時間軸に沿って順次変更しても良い。この場合、時間補正量導出手段は、その導出された時間相関値の中で、値が最大となる時間相関値に対応する出力音変化の時間軸に沿った伸縮率及び設定位置を、時間補正量として導出しても良い(請求項4)。
【0023】
一般的に、楽音推移や出力音推移に含まれる非調波成分は、打楽器(例えば、ドラムやベース)や楽器のアタック音に多く含まれており、時間のずれに対する相関度合いの変化が大きい。
【0024】
よって、本発明の音源分離装置において、楽譜データに規定された出力音の出力タイミングを(打楽器データを基にした)時間補正量に従って修正すれば、修正楽譜データによって表される楽曲と、対象楽曲とのリズム、ひいては、修正楽譜データにおける個々の出力音の出力タイミングと、楽音の演奏開始タイミングとを容易に一致させることができる。
【0025】
なお、本発明における変化導出手段は、音高補正量導出手段にて導出された音高補正量に従って、音高がシフトされた出力音を修正出力音とした修正楽譜データに基づいて、修正音取得手段で取得された修正音推移を、出力音推移としても良い(請求項5)。
【0026】
ただし、この場合、請求項5における補正量導出手段を形成する変化導出手段、時間相関導出手段、及び時間量導出手段は、請求項4に記載の変化導出手段、時間相関導出手段、及び時間量導出手段と同様に構成されている必要がある。
【0027】
このような本発明の音源分離装置では、時間補正量を導出する前に、楽譜データに規定された個々の出力音の音高が、対象楽曲を構成する楽音の音高に一致するように修正されている。したがって、本発明の音源分離装置によれば、楽譜データに規定された出力音の音高と、対象楽曲を構成する楽音の音高との間にズレが生じていることに起因して、時間補正量の導出精度が低下することを防止できる。
【0028】
さらに、本発明において、変化導出手段は、楽音変化及び出力音変化を、対象楽曲においてテンポ一定の区間毎に導出しても良い(請求項6)。
このような音源分離装置によれば、楽譜データにおける出力音の出力タイミングの修正を、対象楽曲においてテンポが一定の区間毎に実行することができる。
【0029】
また、本発明の音源分離装置における音源分離手段は、記憶制御手段が、区間推移導出手段にて導出された区間推移を楽音推移から減算した残留楽音推移を導出して、その導出した残留楽音推移を記憶装置に記憶する。そして、更新手段が、区間推移導出手段での区間推移の導出を、対象トラックを順次変更して実行すると共に、区間推移が導出されると、その導出された区間推移を記憶装置に記憶された残留楽音推移から減算して、当該記憶装置に記憶された残留楽音推移を更新しても良い(請求項7)。
【0030】
このような本発明の音源分離装置においては、楽音推移に含まれる対象音推移を、該楽音推移から分離する際に、一つの対象トラックに対応する楽音推移についてのみ分離すれば、その対象トラックに対応する音源にて発生した音のみを除去した残留楽音推移を生成することができる。すなわち、本発明の音源分離装置によれば、対象楽曲に対して、いわゆるマイナスワンを実行することができる。
【0031】
また、例えば、楽音として歌声が含まれた楽音推移を取得した場合、その楽音推移から、全ての楽譜トラックについての対象音推移を減算すれば、楽譜データにおける時間軸に沿った歌声の推移が残る。つまり、本発明の楽器音分離装置によれば、対象楽曲に含まれる歌声の推移を抽出することができる。
【0032】
なお、本発明は、コンピュータを音源分離装置として機能させるためのプログラムであっても良い。本発明が、このようなプログラムとしてなされている場合、その本発明のプログラムでは、楽音推移取得手順と、出力音推移取得手順と、補正量導出手順と、修正手順と、修正音推移取得手順と、比率導出手順と、楽音解析手順と、特定音推移取得手順と、特定音解析手順と、振幅比率導出手順と、区間推移導出手順と、音源分離手順とをコンピュータに実行させる必要がある(請求項8)。
【0033】
本発明の楽音推移取得手順では、対象楽曲を構成する楽音が時間軸に沿って推移した楽音推移を取得し、出力音推移取得手順では、対象楽曲を模擬した楽曲の楽譜を表し、該楽曲にて用いられる音源毎に、対象楽曲にて用いられる音源から出力される個々の音を模擬した出力音について、少なくとも音高及び出力タイミングが規定された楽譜トラックを含む楽譜データに基づいて、全ての楽譜トラックに規定された出力音が、前記楽譜データにおける時間軸に沿って推移した出力音推移を取得する。
【0034】
すると、補正量導出手順では、音高補正量導出手順及び時間補正量導出手順のうち少なくとも一方に、補正量の導出を実行させ、修正手順では、導出した補正量に従って、出力音をシフトすることで修正出力音へと修正した楽譜データである修正楽譜データを生成する。ただし、音高補正量導出手順では、楽音推移から抽出した該楽音推移の特性を表す楽音情報と、出力音推移から抽出した該出力音推移の特性を表す出力音情報とを比較した結果に基づき、出力音の音高が、該出力音に対応する楽音の音高に一致するように楽譜データの音高補正量を補正量の一つとして導出する。一方、時間補正量導出手順では、楽音情報と出力音情報との比較結果に基づき、出力音の出力タイミングが、該出力音に対応する楽音の演奏開始タイミングに一致するように楽譜データの時間補正量を補正量の一つとして導出する。
【0035】
さらに、修正音推移取得手順では、修正手順で生成された修正楽譜データにおける全ての楽譜トラックに規定された修正出力音が、修正楽譜データにおける時間軸に沿って推移した修正音推移を取得し、比率導出手順では、その取得した修正音推移全体での平均振幅と、楽音推移全体での平均振幅との比率である音量比率を導出する。また、楽音解析手順では、楽音推移に含まれる周波数と各周波数における強度とを表す楽音振幅スペクトルを、対象楽曲に時間軸に沿って単位時間毎に導出する。
【0036】
そして、特定音推移取得手順にて、修正楽譜データにおける楽譜トラックの一つである対象トラックに規定された修正出力音が、修正楽譜データにおける時間軸に沿って推移した特定音推移を取得すると、特定音解析手順では、特定音推移に含まれる周波数と各周波数における強度とを表し、かつその各周波数における強度に音量比率を乗じた特定音振幅スペクトルを、修正楽譜データの時間軸に沿って単位時間毎に導出し、振幅比率導出手順では、楽音振幅スペクトルにおける周波数における強度と、特定音振幅スペクトルにおける周波数における強度との比を表す振幅比率を、各周波数について導出する。
【0037】
すると、区間推移導出手順では、振幅比率それぞれを、楽音振幅スペクトルの各周波数における強度に乗じた結果である分離スペクトルから、時間軸に沿った音の推移である区間推移を導出し、音源分離手順では、その区間推移を対象楽曲の時間軸に沿って配することで、楽音推移において、対象トラックに対応する音源にて出力される対象音が時間軸に沿って推移した対象音推移を生成する。
【0038】
本発明のプログラムが、このようになされていれば、例えば、DVD−ROM、CD−ROM、ハードディスク等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータにロードさせて起動することや、必要に応じて通信回線を介してコンピュータに取得させて起動することにより用いることができる。そして、コンピュータに各手順を実行させることで、そのコンピュータを、請求項1に記載された音源分離装置として機能させることができる。
【図面の簡単な説明】
【0039】
【図1】実施形態における音源分離装置の概略構成を示すブロック図である。
【図2】音源分離処理の処理手順を示すフローチャートである。
【図3】音高補正処理の処理手順を示すフローチャートである。
【図4】音高補正処理の処理内容を説明する説明図である。
【図5】時間補正処理の処理手順を示すフローチャートである。
【図6】時間補正処理の処理内容を説明する説明図である。
【図7】音量補正処理の処理手順を示すフローチャートである。
【図8】トラック分離処理の処理手順を示すフローチャートである。
【図9】トラック分離処理の処理内容を説明する説明図である。
【発明を実施するための形態】
【0040】
以下に本発明の実施形態を図面と共に説明する。
本発明が適用された音源分離装置は、複数の音源(例えば、各種の楽器や人)にて発生する音が重畳するように予め生成された1つの楽曲(以下、対象楽曲とする)にて用いられる全音源から出力された音から、対象楽曲における1つの音源から出力された音を分離する装置である。この音源分離装置は、本実施形態では、図1に示す情報処理装置10によって構成されている。
〈音源分離装置の構成について〉
図1に示すように、情報処理装置10は、通信部11と、音響データ読取部12と、入力受付部13と、表示部14と、音声入力部15と、音声出力部16と、音源モジュール17と、記憶部18と、制御部20とを備えている。
【0041】
このうち、通信部11は、情報処理装置10をネットワーク(例えば、専用回線やWAN)に接続し、その接続されたネットワークを介して外部と通信を行うものである。
音響データ読取部12は、記憶媒体に記憶されている音響データを時間軸に沿って順次読み取る装置(例えば、CDやDVDの読取装置)である。その音響データは、対象楽曲を構成する全ての楽音(即ち、全音源から出力される全ての楽音)の音圧が時間軸に沿って推移したアナログ波形を標本化(サンプリング)したデータである。
【0042】
そして、入力受付部13は、外部からの操作に従って情報や指令の入力を受け付ける入力機器(例えば、キーボードやポインティングデバイス)である。表示部14は、画像を表示する表示装置(例えば、液晶ディスプレイやCRT等)である。また、音声入力部15は、音声を電気信号に変換して制御部20に入力する装置(いわゆるマイクロホン)である。音声出力部16は、制御部20からの電気信号を音声に変換して出力する装置(いわゆるスピーカ)である。
【0043】
さらに、音源モジュール17は、対象楽曲を模擬した楽曲(以下、対応楽曲とする)の楽譜を表す楽譜データに基づいて、音源からの音を模擬した音(以下、出力音)を出力する装置である。本実施形態においては、音源モジュール17は、周知のMIDI(Musical Instrument Digital Interface)音源によって構成されている。そして、音源モジュール17において、出力音として音が模擬される音源(以下、模擬音源とする)は、鍵盤楽器(例えば、ピアノやパイプオルガンなど)、弦楽器(例えば、バイオリンやビオラ、ギター、琴など)、打楽器(例えば、ドラムやシンバル、ティンパニー、木琴など)、及び管楽器(例えば、クラリネットやトランペット、フルート、尺八など)などであり、予め登録されている。
【0044】
次に、楽譜データは、対応楽曲を区別するデータである識別データと、当該対応楽曲にて用いられる模擬音源毎の楽譜を表す楽譜トラックとを少なくとも有している。本実施形態における楽譜データは、周知のMIDI規格によって表されている。
【0045】
このうち、各楽譜トラックは、音源モジュール17が出力する出力音について規定されており、模擬音源に応じてインデックス番号mti(mti=1〜MTN)が割り振られている。その楽譜トラックに規定される内容として、少なくとも、音源モジュール17が出力音を出力する期間(以下、音符長)、及び個々の出力音の音高(いわゆるノートナンバー)、個々の出力音の強さ(いわゆるアタック、ベロシティ、ディケイなど)や、対応楽曲を分割する区間(例えば、Aメロやサビなど)におけるテンポがある。
【0046】
ただし、楽譜トラックでの音符長は、当該出力音の出力を開始するまでの当該楽曲の演奏開始からの時刻を表す出力タイミング(いわゆるノートオンタイミング)と、当該出力音の出力を終了するまでの当該楽曲の演奏開始からの時刻を表す終了タイミング(いわゆるノートオフタイミング)とによって規定されている。なお、以下では、楽譜トラックに規定された出力音を演奏音とも称す。
【0047】
また、記憶部18は、記憶内容を読み書き可能に構成された不揮発性の記憶装置(例えば、ハードディスク装置)である。この記憶部18には、処理プログラムや楽譜データが少なくとも格納される。
【0048】
さらに、制御部20は、電源が切断されても記憶内容を保持する必要がある処理プログラムやデータを格納するROM21と、処理プログラムやデータを一時的に格納するRAM22と、ROM21やRAM22に記憶された処理プログラムに従って各処理(各種演算)を実行するCPU23とを少なくとも有した周知のコンピュータを中心に構成されている。
【0049】
なお、本実施形態における処理プログラムとして、楽譜データの楽譜トラックに規定された個々の演奏音(即ち、出力音)が、対象楽曲を構成しかつ該出力音に対応する楽音に一致するように修正した楽譜データを用いて、対象楽曲における全音源から出力された音から、一つの音源から出力された音を分離する音源分離処理を、制御部20が実行するものが予め用意されている。
〈音源分離処理の処理内容について〉
次に、制御部20が実行する音源分離処理について説明する。
【0050】
この音源分離処理は、入力受付部13を介して、当該音源分離処理を起動するための起動指令が入力されると、実行が開始されるものである。
そして、図2に示すように、音源分離処理は、起動されると、入力受付部13を介して入力された情報によって指定される楽曲に対応する楽譜データを取得する(S110(Sは、ステップを意味する))。
【0051】
続いて、音響データ読取部12にて読み取った音響データを、対象楽曲を構成する楽音が時間軸に沿って推移した波形である楽音推移として取得する(S120)。ただし、本実施形態の音響データ読取部12には、本音源分離処理が起動される前に、S110にて取得する楽譜データに対応する対象楽曲の音響データを記憶した記憶媒体が配置されているものとする。
【0052】
そして、S110にて取得した楽譜データと、S120で取得した楽音推移とに基づいて、対象楽曲を構成する楽音の音高に、演奏音の音高が一致するように、当該楽譜データを修正する音高補正処理を実行する(S130)。以下、演奏音について修正が実行された楽譜データを修正楽譜データと称し、修正された演奏音を修正演奏音(本発明の修正出力音に相当)と称す。
【0053】
さらに、音高補正処理によって、楽音の音高に音高が一致するように修正された演奏音の出力タイミングが、楽音の演奏開始タイミングに一致するように、修正楽譜データを修正する時間補正処理を実行する(S150)。続いて、時間補正処理によって、楽音の演奏開始タイミングに出力タイミングが一致するように修正された演奏音の強さが、楽音の強さ(即ち、音量)に一致するように、修正楽譜データを修正するための音量補正量を導出する音量補正処理を実行する(S170)。
【0054】
そして、演奏音の音高や出力タイミングが修正された修正楽譜データ、及び音量補正量を用いて、楽音推移から、一つの音源から出力された音が時間軸に沿って推移した波形である対象音推移を生成するトラック分離処理を実行する(S180)。
【0055】
その後、本音源分離処理を終了する。
〈音高補正処理の処理内容について〉
次に、音源分離処理のS130にて起動される音高補正処理について説明する。
【0056】
この音高補正処理は、起動されると、図3に示すように、先のS110にて取得した楽譜データに含まれる全ての楽譜トラックに基づいて、全ての演奏音が時間軸に沿って推移した波形である出力音推移を取得する(S310)。具体的に、本実施形態における出力音推移の取得は、全ての楽譜トラックに規定されている個々の演奏音を、楽譜データの時間軸に沿って音源モジュール17に出力させ、音声入力部15を介して受け付けることで実行する。
【0057】
続いて、その取得した出力音推移を、時間軸に沿って設定された単位時間毎に周波数解析(本実施形態では、離散フーリエ変換)して、各単位時間の出力音推移に含まれる周波数、及び各周波数における強度を表すパワースペクトルを導出する(S320)。その導出されたパワースペクトルに基づいて、各周波数における強度を、時間軸に沿って周波数毎に相加平均した平均出力音スペクトルを導出する(S330)。その導出した平均出力音スペクトルの周波数における強度を、境界が互いに隣接するように予め規定された周波数範囲(例えば、半音単位、以下、規定音高範囲)毎に平均化して代表値を求める(S340)。さらに、そのS340で平均化した平均出力音スペクトルにおける周波数における強度を、分散「1」、平均「0」となるように正規化した正規化出力音スペクトル(図4(A)参照)を導出する(S350)。
【0058】
なお、本実施形態のS340にて求める代表値は、規定音高範囲に含まれる周波数における強度を平均化することで求めることに限らず、規定音高範囲における中心値に対応する周波数における強度を代表値としても良い。この場合、具体的には、20Cent毎(半音の5分の1毎)に、20Centグリッドに一番近い周波数の値(パワー)を抽出する処理を行う。
【0059】
続いて、先のS120にて取得した楽音推移を、時間軸に沿って設定された単位時間毎に周波数解析して、各単位時間の楽音推移に含まれる周波数、及び各周波数における強度を表すパワースペクトルを導出する(S360)。その導出されたパワースペクトルに基づいて、各周波数における強度を、時間軸に沿って周波数毎に相加平均した平均楽音スペクトルを導出する(S370)。その導出した平均楽音スペクトルの周波数における強度を、規定音高範囲毎に平均化して代表値とし(S380)、そのS380で平均化した平均楽音スペクトルにおける周波数における強度を、分散「1」、平均「0」となるように正規化した正規化楽音スペクトル(図4(B)参照)を導出する(S390)。
【0060】
なお、本実施形態のS380にて求める代表値は、規定音高範囲に含まれる周波数における強度を平均化することで求めることに限らず、規定音高範囲における中心値に対応する周波数における強度を代表値としても良い。この場合、具体的には、20Cent毎(半音の5分の1毎)に、20Centグリッドに一番近い周波数の値(パワー)を抽出する処理を行う。
【0061】
そして、詳しくは、後述するように、正規化出力音スペクトルと正規化楽音スペクトルとの相関値(以下、音高相関値とする)を導出する(S400)。そして、正規化楽音スペクトルに対する正規化出力音スペクトルのシフト量が予め規定された上限値以上であるか否かを判定する(S410)。その判定の結果、シフト量が上限値未満であれば(S410:NO)、正規化出力音スペクトルを、周波数軸に沿って予め規定された規定量シフトして(S420)、S400へと戻り、音高相関値を再度導出する。
【0062】
すなわち、本実施形態のS400〜S420では、図4(C)に示すように、正規化楽音スペクトルに対して、正規化出力音スペクトルを周波数軸に沿って下限値から上限値に達するまでシフトさせつつ、その正規化出力音スペクトルをシフトさせる毎に、音高相関値を導出する。
【0063】
そして、正規化出力音のシフト量が上限値以上となると(S410:YES)、対象楽曲を構成する楽音の音高に、演奏音の音高を一致させるための補正量(以下、音高補正量とする)を導出する(S430)。本実施形態のS430では、具体的に、先のS400にて導出された全ての音高相関値の中で、値が最大である音高相関値に対応する正規化出力音スペクトルのシフト量を音高補正量として導出する。
【0064】
続いて、その導出された音高補正量に従って、楽譜データにおける全ての楽譜トラックに規定された個々の演奏音の音高を修正(シフト)することで、修正楽譜データを生成する(S440)。すなわち、本実施形態のS440にて生成される修正楽譜データは、演奏音の音高が、予め用意された演奏音の音高から音高補正量シフトされたものとなる。
【0065】
そして、その後、本音高補正処理を終了し、音源分離処理へと戻る。
つまり、音高補正処理では、楽音推移の特性を表す楽音情報としての正規化楽音スペクトルと、出力音推移の特性を表す出力音情報としての正規化出力音スペクトルとを比較した結果に基づいて導出した一つの音高補正量に従って、楽譜データにおける全ての楽譜トラックに規定された個々の演奏音の音高を修正している。
【0066】
〈時間補正処理の処理内容について〉
次に、音源分離処理のS150にて起動される時間補正処理について説明する。
この時間補正処理は、起動されると、図5に示すように、先のS440にて生成された修正楽譜データに含まれる全ての楽譜トラックに基づいて、全ての修正演奏音が時間軸に沿って推移した波形である修正音推移を取得する(S510)。本実施形態における修正音推移の取得は、S310と同様の方法により実行すれば良い。
【0067】
続いて、その取得した修正音推移の非調波成分が時間軸に沿って推移した波形である出力音非調波を、該修正音推移から導出し(S520)、さらに、先のS120で取得した楽音推移の非調波成分が時間軸に沿って推移した波形である楽音非調波を、該楽音推移から導出する(S530)。これらの非調波成分の導出は、予め用意されたフィルタに、修正音推移または楽音推移を通過させることで実行しても良い。
【0068】
さらに、出力音非調波及び楽音非調波を、それぞれ、時間軸に沿って規定された時間長である特定ブロック毎に分割する(S540)。その分割する特定ブロックは、出力音非調波については、対応楽曲においてテンポが一定であることを表すテンポ一定区間毎である。このテンポ一定区間は、楽譜トラックに規定されたテンポに従って、対応楽曲にてテンポが変更する時刻を、各テンポ一定区間の開始時刻、終了時刻として特定することで決定する。なお、楽音非調波の特定ブロックについては、出力音非調波の特定ブロックを決定した後、出力音非調波の特定ブロックそれぞれの開始時刻、終了時刻に相当する対象楽曲の演奏開始からの時刻を、楽音非調波の特定ブロックそれぞれの開始時刻及び終了時刻として特定することで決定する。
【0069】
そして、S540にて分割された特定ブロックの中から、一組の特定ブロックを選択し(S550)、その選択された一組の特定ブロックについて、楽音非調波、出力音非調波共に、時間軸に沿った変化を表すユニットデータを生成する(S560)。本実施形態におけるユニットデータは、図6(A),(B)に示すように、特定ブロックよりも短い時間長である規定区間毎に、その規定区間内での非調波成分(即ち、楽音非調波,及び出力音非調波)の振幅値を加算する。その上で、加算された振幅値を、正規化することによって生成する。なお、以下では、出力音非調波についてのユニットデータを出力音ユニットデータ(本発明における出力音変化に相当)とし、楽音非調波についてのユニットデータを楽音ユニットデータ(本発明における楽音変化に相当)とする。
【0070】
続いて、S560で生成した出力音ユニットデータの時間軸上に規定された出力音設定位置を、楽音ユニットデータの時間軸上に規定された楽音設定位置に一致させて、出力音ユニットデータと楽音ユニットデータとの相関値(以下、時間相関値とする)を導出する(S570)。そして、楽音ユニットデータに対する出力音ユニットデータの伸縮率が、予め規定された上限値(伸縮率の上限値)以上であるか否かを判定する(S580)。その判定の結果、楽音ユニットデータの伸縮率が、伸縮率の上限値未満であれば(S580:NO)、出力音ユニットデータを、時間軸に沿って予め規定された規定量拡大して(S590)、S570へと戻る。
【0071】
さらに、楽音ユニットデータの伸縮率が、伸縮率の上限値に達していれば(S580:YES)、楽音ユニットデータに対する出力音ユニットデータの時間軸に沿ったシフト量が、予め規定された上限値(シフト量の上限値)以上であるか否かを判定する(S600)。その判定の結果、楽音ユニットデータのシフト量が、シフト量の上限値未満であれば(S600:NO)、出力音ユニットデータの設定位置を、予め規定された時間シフトして(S610)、出力音ユニットデータの伸縮率を下限値とした上で、S570へと戻る。
【0072】
すなわち、本実施形態のS570〜S610では、図6(C)に示すように、楽音ユニットデータに対して、出力音ユニットデータの伸縮率が上限値に達するまで拡大する毎に、時間相関値を導出する。そして、このような時間相関値の導出を、楽音ユニットデータに対して、出力音ユニットデータを時間軸に沿ってシフト量の上限値に達するまでシフトさせつつ実行する。
【0073】
一方、S600での判定の結果、出力音ユニットデータのシフト量が、シフト量の上限値以上であれば(S600:YES)、対象楽曲を構成する楽音の演奏開始タイミングに、修正出力音の出力タイミングを一致させるための補正量(以下、時間補正量とする)を導出する(S620)。本実施形態のS620では、具体的に、一組の特定ブロックに対してS570で導出された全ての時間相関値の中で、値が最大となる時間相関値に対応する出力音ユニットデータの伸縮率及びシフト量を、S550で選択した特定ブロックに対する時間補正量として導出する。
【0074】
その導出された時間補正量に従って、個々の演奏音の出力タイミングを修正(ここでは、修正演奏音をさらに修正)した修正楽譜データを生成する(S630)。本実施形態のS630では、S550で選択した特定ブロックに対する時間補正量として導出された、出力音ユニットデータのシフト量と、出力音ユニットデータの伸縮率とに基づいて、演奏音の音高が修正された修正楽譜データにおける当該特定ブロックの開始時刻及び終了時刻を修正する。そして、修正前の演奏音の出力タイミングの間隔比率が維持されるように、修正後の開始時刻、及び終了時刻にて規定される期間に応じて、演奏音の出力タイミングの間隔を伸縮させることで、当該特定ブロックに対する個々の演奏音の出力タイミングを修正した修正楽譜データを生成する。なお、本実施形態のS630では、演奏音の終了タイミングについても修正する。この演奏音の終了タイミングの修正方法は、演奏音の出力タイミングと同様の方法を用いればよい。
【0075】
続いて、S540にて分割した全ての特定ブロックに対して、時間補正量を導出したか否かを判定し(S640)、その判定の結果、全ての特定ブロックに対して時間補正量を導出していなければ(S640:NO)、S550に戻る。そのS550では、新たな特定ブロックを選択し、S630までのステップを実行する。このS550では、時間長が長い特定ブロックから順に取得して、該特定ブロックに対する時間補正量を導出する。ただし、時間補正量が既に導出されている特定ブロックに隣接する特定ブロックでは、既に導出されている特定ブロックの修正後の開始時刻または終了時刻を、自特定ブロックでの値として導出する。
【0076】
一方、S640での判定の結果、全ての特定ブロックに対して時間補正量を導出していれば(S640:YES)、その後、本時間補正処理を終了し、音源分離処理へと戻る。
つまり、時間補正処理では、楽音推移の特性を表す楽音情報としての楽音ユニットデータと、修正音推移の特性を表す出力音情報としての出力音ユニットデータとを比較した結果に基づいて導出した時間補正量に従って、楽譜データにおける全ての楽譜トラックに規定された個々の演奏音の出力タイミングを修正している。
【0077】
〈音量補正処理の処理内容について〉
次に、音源分離処理のS170にて起動される音量補正処理について説明する。
この音量補正処理は、起動されると、図7に示すように、先のS640にて生成された修正楽譜データに含まれる全ての楽譜トラックに基づいて、全ての修正演奏音が時間軸に沿って推移した波形である修正音推移を取得する(S710)。本実施形態における修正音推移の取得は、S310と同様の方法により実行すれば良い。
【0078】
そのS710にて取得した修正音推移の振幅を時間軸に沿った全体(全期間)で平均することで、出力音平均振幅を導出し(S720)、さらに、先のS120にて取得した楽音推移の振幅を時間軸に沿った全体(全期間)で平均することで、楽音平均振幅を取得する(S730)。続いて、S720にて導出した出力音平均振幅と、S730にて導出した楽音平均振幅との比率である音量比率kvを音量補正量として導出する(S740)。
【0079】
その後、音量補正処理を終了し、音源分離処理へと戻る。
〈トラック分離処理の処理内容について〉
次に、音源分離処理のS180にて起動されるトラック分離処理について説明する。
【0080】
このトラック分離処理は、起動されると、図8に示すように、先のS120で取得した楽音推移の全体を、時間軸に沿って設定された分析時間twi毎に周波数解析(本実施形態では、離散フーリエ変換)し、その周波数解析の結果をRAM22(または記憶部18)に記憶する(S810)。このS810の周波数解析により、各分析時間twiの楽音推移に含まれる周波数、及び各周波数における強度(以下、楽音スペクトル振幅値とする)tusp(twi,fi)が、実数部及び虚数部の両方について導出される。また、符合fiは、周波数の区分(即ち、離散フーリエ変換によって導出される周波数区分:単位[bin])である。
【0081】
次に、楽譜トラックのインデックス番号mtiを初期値(本実施形態では、初期値=0)に設定する(S820)。続いて、設定されている楽譜トラックのインデックス番号(以下、設定インデックスとする)mtiが、楽譜データにおける最大のインデックス番号(以下、最終インデックス)MTN未満であるか否かを判定する(S830)。
【0082】
そのS830での判定の結果、設定インデックスmtiが最終インデックスMTN未満であれば(S830:YES)、設定インデックスmtiを1つインクリメントする(S840)。続いて、対象音推移を初期値に設定する(S850)。本実施形態において、対象音推移の初期値は、音圧が時間軸に沿って全て「0」に設定されたゼロ波形である。
【0083】
そして、設定インデックスmtiに対応する楽譜トラックの演奏音のインデックス番号(以下、演奏音インデックスとする)niを初期値(本実施形態では、0とする)に設定する(S860)。続いて、演奏音インデックスniが、設定インデックスmtiに対応する楽譜トラックにおいて、最大のインデックス番号(以下、最終演奏音とする)NNPT(mti)未満であるか否かを判定する(S870)。
【0084】
そのS870での判定の結果、演奏音インデックスniが、最終演奏音NNPT(mti)未満であれば(S870:YES)、演奏音インデックスniを規定数インクリメントする(S880)。続いて、今回のS880でインクリメントされた規定数の演奏音インデックスniに対応する演奏音が、時間軸に沿って推移した波形である特定音推移を取得する(S890)。本実施形態における特定音推移の取得は、S310と同様の方法により実行すれば良い。
【0085】
そして、取得した特定音推移を、時間軸に沿って設定された分析時間twi毎に周波数解析(ここでは、離散フーリエ変換)する(S900)。この周波数解析の結果、特定音推移における分析時間twiに含まれる周波数毎に、その周波数における強度(以下、スペクトル振幅値)ntsp(twi,fi)が、実数部及び虚数部の両方について導出される。
【0086】
続いて、図9(A)に示すように、先の音量補正量導出処理で導出された音量比率kvを、個々のスペクトル振幅値ntsp(twi,fi)に乗じた特定音スペクトル振幅値ntsp_n(twi,fi)を導出する(S910)。その特定音スペクトル振幅値ntsp_n(twi,fi)と、楽音スペクトル振幅値tusp(twi,fi)との比を表す振幅比率kr(twi,fi)を導出する(S920)。本実施形態のS920では、振幅比率krを、周波数区分fi毎に導出する。ただし、振幅比率kr(twi,fi)の値は、特定音スペクトル振幅値ntsp(twi,fi)が、楽音スペクトル振幅値tusp(twi,fi)よりも大きければ、「1」とし、特定音スペクトル振幅値ntsp(twi,fi)が、楽音スペクトル振幅値tusp(twi,fi)よりも小さければ、両スペクトル振幅値の比としている。
【0087】
そして、楽音スペクトル振幅値tusp(twi,fi)に、振幅比率krを乗算して分離スペクトル振幅値ntcpsp(twi,fi)、即ち、分離スペクトルを導出する(S930)。このS930では、具体的に、図9(B)、及び図9(C)に示すように、実数部及び虚数部それぞれの楽音スペクトル振幅値tusp(twi,fi)に、分析時間twiと周波数区分fiとの組み合わせに対応する振幅比率kr(twi,fi)を乗算する。なお、図9(B),(C)中において、実線は、分離スペクトルとして導出されたスペクトル振幅値ntcpsp(twi,fi)であり、破線は、楽音スペクトル振幅値tusp(twi,fi)である。
【0088】
さらに、S930にて導出された分離スペクトル振幅値ntcpsp(twi,fi)を、RAM22(または記憶部18)に記憶され、対応する時間(期間)における楽音スペクトル振幅値tuspから減算することで、RAM22(または記憶部18)に記憶された楽音スペクトル振幅値tuspを新たな楽音スペクトル振幅値tuspへと更新する(S940)。
【0089】
続いて、分離スペクトル振幅値ntcpsp(twi,fi)を逆離散フーリエ変換(IDFT)して、区間推移を導出する(S950)。そして、初期値に設定されている対象音推移のうち、対応する区間について、S950で導出された区間推移へと置き換えることで、新たな対象音推移へと更新する(S960)。
【0090】
その後、S870へと戻り、演奏音インデックスniが、設定インデックスmtiにおける最終演奏音NNPT(mti)未満であれば(S870:YES)、S870からS960のステップを繰り返す。そして、演奏音インデックスniが、設定インデックスmtiにおける最終演奏音NNPT(mti)以上となると(S870:NO)、その時点での対象音推移を記憶部18に記憶する(S970)。すなわち、音響データから、対象トラックに対応する音源から出力される音(つまり、対象音推移)を分離し終えると、S970を経てS830へと戻る。
【0091】
そのS970を経て戻ったS830では、設定インデックスmtiが、最終インデックスMTN未満であれば(S830:YES)、S840からS970のステップを繰り返す。そして、設定されている設定インデックスmtiが、最終インデックスMTN以上となると(S830:NO)、本音源分離処理を終了する。すなわち、楽譜データに含まれる全ての楽譜トラックについて、音響データから対象音推移を生成して分離し終えると、本音源分離処理を終了する。
[実施形態の効果]
以上説明したように、本実施形態の音源分離処理における音量補正処理では、音量比率kvを音量補正量として導出しており、この音量比率kvの導出は、計算を反復して実行する必要がない。
【0092】
このため、本実施形態の音量補正処理によれば、従来音源分離装置に比べて、音量補正量の導出に要する計算量を低減することができる。
さらに、音源分離処理における音高補正処理では、正規化出力音スペクトルと正規化楽音スペクトルとが最大相関(相関値の中で、値が最大である相関値で、正規化出力音スペクトルと正規化楽音スペクトルとの差分の値が最小)となるときの、正規化楽音スペクトルに対する正規化楽音スペクトルの周波数軸に沿ったシフト量を、音高補正量として導出している。この音高補正量の導出は、正規化出力音スペクトルを周波数軸に沿って、下限値から上限値までシフトさせることによって行われている。
【0093】
このため、本実施形態の音高補正処理によれば、従来音源分離装置に比べて、音高補正量を導出するために、計算を反復する回数を低減できる。
これらの結果、本実施形態の音源分離処理によれば、従来音源分離装置に比べて、個々の補正量を導出するために要する計算量を削減することができ、ひいては、楽音推移から、該楽音推移に含まれる対象音推移を抽出するまでに要する計算量を低減できる。
【0094】
なお、本実施形態の音高補正処理では、楽音推移及び出力音推移のパワースペクトルのうち、周波数における強度について正規化することで導出した正規化出力音スペクトル及び正規化楽音スペクトルの比較結果に基づいて、音高補正量を導出している。
【0095】
したがって、このように導出される音高補正量を用いて、楽譜データに規定された個々の出力音の音高を修正すれば、楽音推移の振幅と、出力音推移の振幅とが大きく異なっていたとしても、修正楽譜データに基づく修正音推移を楽音推移に近づけることができる。
【0096】
さらに、本実施形態において、正規化出力音スペクトル及び正規化楽音スペクトルは、周波数について半音毎に平均化されているため、楽音の周波数や出力音の周波数に周波数ノイズが吸収されることとなる。このため、正規化出力音スペクトルと正規化楽音スペクトルとの相関の誤差が小さくなり、音高補正量の導出精度を向上させることができる。これにより、修正楽譜データに基づく出力音推移の音高と、楽音推移の音高との一致度をより向上させることができる。
【0097】
また、本実施形態のデータ修正処理では、音高補正処理を実行して、楽譜データに規定された個々の演奏音の音高が、対象楽曲を構成する楽音の音高に一致するように修正した上で、時間補正処理を実行している。したがって、音源分離装置10によれば、楽譜データに規定された演奏音の音高と、対象楽曲を構成する楽音の音高との間にズレが生じていることに起因して、時間補正量の導出精度が低下することを防止できる。
【0098】
特に、本実施形態の時間補正処理では、対象楽曲においてテンポが一定の区間毎に、時間補正量の導出している。このように導出された時間補正量を用いて、出力音の出力タイミングを修正することで、修正楽譜データにおける個々の出力音の出力タイミングを、対象楽曲における個々の楽音の演奏開始タイミングにより正確に一致させることができる。
【0099】
このような音源分離処理においては、楽音推移に含まれる対象音推移を、該楽音推移から分離する際に、一つの対象トラックに対応する楽音推移についてのみ分離すれば、その対象トラックに対応する音源にて発生した音のみを除去した残留楽音推移を生成することができる。すなわち、本実施形態の音源分離処理によれば、対象楽曲に対して、いわゆるマイナスワンを実行することができる。
【0100】
特に、本実施形態の音源分離処理において、楽音として歌声が含まれた楽音推移を取得した場合、その楽音推移から全ての楽譜トラックについての区間推移(即ち、対象音推移)を減算すると、歌声の音圧の時間軸に沿った推移が残る。つまり、音源分離装置10によれば、楽曲における歌声の音圧の推移を抽出することができる。
[その他の実施形態]
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において、様々な態様にて実施することが可能である。
【0101】
例えば、上記実施形態の音高補正処理におけるS310では、全ての楽譜トラックに規定されている個々の出力音を、楽譜データの時間軸に沿って音源モジュール17に出力させ、音声入力部15を介して受け付けることで、出力音推移の取得を実行していたが、出力音推移の取得方法は、これに限るものではない。すなわち、出力音推移の取得は、出力音の時間軸に沿った波形を表す音響信号(電気信号)を音源モジュール17が生成し、その生成された音響信号に従って音声出力部16が鳴動するように、情報処理装置10が構成されている場合、音源モジュール17が生成する音響信号を出力音推移として取得しても良い。
【0102】
そして、上記実施形態の時間補正処理では、時間補正量の導出を、特定ブロック毎に実行していたが、時間補正量は、楽曲に対して一つ導出されても良い。
また、上記実施形態における時間補正処理では、時間補正量の導出するときに楽音ユニットデータと比較する出力音ユニットデータを、出力音の音高が修正された修正楽譜データに基づいて取得した修正音推移から生成していたが、この出力音ユニットデータの生成に用いる信号は、例えば、出力音の音高が修正される前の楽譜データに基づいて取得した出力音推移であっても良い。
【0103】
さらに、上記実施形態の音量補正処理では、修正楽譜データに基づいて取得した修正音推移を用いて音量比率を導出した修正楽譜データを生成したが、本発明においては、音量比率の導出は、楽譜データに基づく出力音推移を用いて実行しても良い。
【0104】
なお、上記実施形態の音源分離処理では、音高補正処理と時間補正処理との両方の処理を実行していたが、音源分離処理で実行する処理としては、音高補正処理と時間補正処理とのうちの少なくとも一方であっても良い。
[実施形態と特許請求の範囲との対応関係]
最後に、上記実施形態の記載と、特許請求の範囲の記載との関係を説明する。
【0105】
上記実施形態の音源分離処理におけるS120が、本発明の楽音推移取得手段に相当し、音高補正処理のS310及び時間補正処理のS510が、出力音推移取得手段に相当する。そして、上記実施形態の音高補正処理におけるS320〜S430、及び時間補正処理におけるS520〜S620が、本発明の補正量導出手段に相当し、このうち、前者が音高補正量導出手段に、後者が時間補正量導出手段に相当する。
【0106】
さらに、上記実施形態の音高補正処理におけるS440、及び時間補正処理のS630が、本発明の修正手段に相当し、音量補正処理におけるS710が、修正音推移取得手段に相当し、音量補正処理におけるS720〜S740が、比率導出手段に相当する。また、上記実施形態のトラック分離処理におけるS890が、本発明の特定音推移取得手段に相当し、トラック分離処理におけるS900,S910が、特定音解析手段に相当し、トラック分離処理におけるS920が、振幅比率導出手段に相当し、トラック分離処理におけるS930,S950が、区間推移導出手段に相当し、トラック分離処理におけるS940,S960,S970が、音源分離手段に相当する。
【0107】
そして、上記実施形態の音高補正処理におけるS320〜S390が、本発明の分布導出手段に相当し、時間補正処理のS520〜S560が、変化導出手段に相当し、時間補正処理のS570〜S610が、時間相関導出手段に相当する。また、上記実施形態のトラック分離処理におけるS940が、本発明の記憶制御手段に相当し、トラック分離処理におけるS830〜S970が、本発明の更新手段に相当する。
【符号の説明】
【0108】
10…情報処理装置(音源分離装置) 11…通信部 12…音響データ読取部 13…入力受付部 14…表示部 15…音声入力部 16…音声出力部 17…音源モジュール 18…記憶部 20…制御部 21…ROM 22…RAM 23…CPU

【特許請求の範囲】
【請求項1】
対象楽曲を構成する楽音が時間軸に沿って推移した楽音推移を取得する楽音推移取得手段と、
前記対象楽曲を模擬した楽曲の楽譜を表し、該楽曲にて用いられる音源毎に、前記対象楽曲にて用いられる音源から出力される個々の音を模擬した出力音について、少なくとも音高及び出力タイミングが規定された楽譜トラックを含む楽譜データに基づいて、全ての楽譜トラックに規定された前記出力音が、前記楽譜データにおける時間軸に沿って推移した出力音推移を取得する出力音推移取得手段と、
前記楽音推移取得手段にて取得した楽音推移から抽出した該楽音推移の特性を表す楽音情報と、前記出力音推移取得手段にて取得した出力音推移から抽出した該出力音推移の特性を表す出力音情報とを比較した結果に基づき、前記出力音の音高が、該出力音に対応する楽音の音高に一致するように前記楽譜データの音高補正量を補正量の一つとして導出する音高補正量導出手段と、前記楽音情報と前記出力音情報との比較結果に基づいて、前記出力音の出力タイミングが、該出力音に対応する楽音の演奏開始タイミングに一致するように前記楽譜データの時間補正量を補正量の一つとして導出する時間補正量導出手段とを有し、前記音高補正量導出手段、及び前記時間補正量導出手段のうち少なくとも一方に、前記補正量の導出を実行させる補正量導出手段と、
前記補正量導出手段にて導出した補正量に従って、前記出力音をシフトすることで修正出力音へと修正した前記楽譜データである修正楽譜データを生成する修正手段と、
前記修正手段で生成された修正楽譜データにおける全ての楽譜トラックに規定された前記修正出力音が、前記修正楽譜データにおける時間軸に沿って推移した修正音推移を取得する修正音推移取得手段と、
前記修正音推移取得手段にて取得した修正音推移から導出した該修正音推移全体での平均振幅と、前記楽音推移取得手段にて取得した楽音推移から導出した該楽音推移全体での平均振幅との比率である音量比率を導出する比率導出手段と、
前記楽音推移取得手段で取得した楽音推移に含まれる周波数と各周波数における強度とを表す振幅スペクトルである楽音振幅スペクトルを、前記対象楽曲に時間軸に沿って単位時間毎に導出する楽音解析手段と、
前記修正手段で生成された修正楽譜データにおける楽譜トラックの一つである対象トラックに規定された前記修正出力音が、前記修正楽譜データにおける時間軸に沿って推移した特定音推移を取得する特定音推移取得手段と、
前記特定音推移取得手段で取得した特定音推移に含まれる周波数と各周波数における強度とを表し、かつその各周波数における強度に前記比率導出手段で導出した音量比率を乗じた特定音振幅スペクトルを、前記修正楽譜データの時間軸に沿って単位時間毎に導出する特定音解析手段と、
前記楽音解析手段で導出された楽音振幅スペクトルにおける周波数における強度と、前記特定音解析手段で導出された特定音振幅スペクトルにおける周波数における強度との比を表す振幅比率を、各周波数について導出する振幅比率導出手段と、
前記振幅比率導出手段で導出された振幅比率それぞれを、前記楽音振幅スペクトルの各周波数における強度に乗じた結果である分離スペクトルから、時間軸に沿った音の推移である区間推移を導出する区間推移導出手段と、
前記区間推移導出手段にて導出した区間推移を前記対象楽曲の時間軸に沿って配することで、前記楽音推移において、前記対象トラックに対応する音源にて出力される対象音が時間軸に沿って推移した対象音推移を生成する音源分離手段と
を備えることを特徴とする音源分離装置。
【請求項2】
前記音高補正量導出手段は、
前記楽音推移の全体にわたって含まれる周波数と各周波数における強度とを表す楽音音高分布を、前記楽音情報の一つとして導出すると共に、前記出力音推移の全体にわたって含まれる周波数と各周波数における強度とを表す出力音高分布を、前記出力音情報の一つとして導出する分布導出手段を備え、
前記分布導出手段にて導出された出力音高分布と楽音音高分布との相関値を表す音高相関値を、前記楽音音高分布の予め規定された規定位置から前記出力音高分布を周波数軸に沿ってシフトさせる毎に導出し、それらの導出された音高相関値の中で、値が最大となる音高相関値に対応する前記規定位置からの周波数軸に沿ったシフト量を、前記音高補正量として導出することを特徴とする請求項1に記載の音源分離装置。
【請求項3】
前記分布導出手段は、
前記楽音音高分布及び前記出力音高分布について、各周波数における強度を正規化して導出することを特徴とする請求項2に記載の音源分離装置。
【請求項4】
前記時間補正量導出手段は、
前記楽音推移から、時間軸に沿った該楽音推移の非調波成分における変化の推移を表す楽音変化を、前記楽音情報の一つとして導出すると共に、前記出力音推移から、時間軸に沿った該出力音推移の非調波成分における変化の推移を表す出力音変化を、前記出力音情報の一つとして導出する変化導出手段と、
前記変化導出手段にて導出された楽音変化と出力音変化との相関値を表す時間相関値を、前記楽音変化と前記出力音変化とに設定された設定位置を一致させて前記出力音変化を時間軸に沿って伸縮する毎に導出すると共に、前記設定位置を規定範囲内で時間軸に沿って順次変更する時間相関導出手段とを備え、
前記時間相関導出手段にて導出された時間相関値の中で、値が最大となる時間相関値に対応する前記出力音変化の時間軸に沿った伸縮率及び設定位置を、前記時間補正量として導出することを特徴とする請求項1〜請求項3のいずれか一項に記載の音源分離装置。
【請求項5】
前記時間補正量導出手段は、
前記楽音推移から、時間軸に沿った該楽音推移の非調波成分における変化の推移を表す楽音変化を、前記楽音情報の一つとして導出すると共に、前記出力音推移から、時間軸に沿った該出力音推移の非調波成分における変化の推移を表す出力音変化を、前記出力音情報の一つとして導出する変化導出手段と、
前記変化導出手段にて導出された楽音変化と出力音変化との相関値を表す時間相関値を、前記楽音変化と前記出力音変化とに設定された設定位置を一致させて前記出力音変化を時間軸に沿って伸縮する毎に導出すると共に、前記設定位置を規定範囲内で時間軸に沿って順次変更する時間相関導出手段とを備え、
前記時間相関導出手段にて導出された時間相関値の中で、値が最大となる時間相関値に対応する前記出力音変化の時間軸に沿った伸縮率及び設定位置を、前記時間補正量として導出し、
前記変化導出手段は、
前記音高補正量導出手段にて導出された音高補正量に従って、音高がシフトされた出力音を前記修正出力音とした修正楽譜データに基づいて、前記修正音推移取得手段で取得された修正音推移を、前記出力音推移とする
ことを特徴とする請求項請求項2または請求項3に記載の音源分離装置。
【請求項6】
前記変化導出手段は、
前記対象楽曲においてテンポ一定の区間である対象区間毎に、前記楽音変化を導出し、前記対象区間に対応する区間毎に、前記出力音変化を導出することを特徴とする請求項4または請求項5に記載の音源分離装置。
【請求項7】
前記音源分離手段は、
前記区間推移導出手段にて導出された区間推移を前記楽音推移から減算した残留楽音推移を導出して、その導出した残留楽音推移を記憶装置に記憶する記憶制御手段と、
前記区間推移導出手段での区間推移の導出を、前記対象トラックを順次変更して実行すると共に、前記区間推移が導出されると、その導出された区間推移を前記記憶装置に記憶された残留楽音推移から減算して、当該記憶装置に記憶された残留楽音推移を更新する更新手段と
を備えることを特徴とする請求項1から請求項6のいずれか一項に記載の音源分離装置。
【請求項8】
対象楽曲を構成する楽音が時間軸に沿って推移した楽音推移を取得する楽音推移取得手順と、
前記対象楽曲を模擬した楽曲の楽譜を表し、該楽曲にて用いられる音源毎に、前記対象楽曲にて用いられる音源から出力される個々の音を模擬した出力音について、少なくとも音高及び出力タイミングが規定された楽譜トラックを含む楽譜データに基づいて、全ての楽譜トラックに規定された前記出力音が、前記楽譜データにおける時間軸に沿って推移した出力音推移を取得する出力音推移取得手順と、
前記楽音推移取得手順にて取得した楽音推移から抽出した該楽音推移の特性を表す楽音情報と、前記出力音推移取得手順にて取得した出力音推移から抽出した該出力音推移の特性を表す出力音情報とを比較した結果に基づき、前記出力音の音高が、該出力音に対応する楽音の音高に一致するように前記楽譜データの音高補正量を補正量の一つとして導出する音高補正量導出手順と、前記楽音情報と前記出力音情報との比較結果に基づき、前記出力音の出力タイミングが、該出力音に対応する楽音の演奏開始タイミングに一致するように前記楽譜データの時間補正量を補正量の一つとして導出する時間補正量導出手順とを有し、前記音高補正量導出手順、及び前記時間補正量導出手順のうち少なくとも一方に、前記補正量の導出を実行させる補正量導出手順と、
前記補正量導出手順にて導出した補正量に従って、前記出力音をシフトすることで修正出力音へと修正した前記楽譜データである修正楽譜データを生成する修正手順と、
前記修正手順で生成された修正楽譜データにおける全ての楽譜トラックに規定された前記修正出力音が、前記修正楽譜データにおける時間軸に沿って推移した修正音推移を取得する修正音推移取得手順と、
前記修正音推移取得手順にて取得した修正音推移から導出した該修正音推移全体での平均振幅と、前記楽音推移取得手順にて取得した楽音推移から導出した該楽音推移全体での平均振幅との比率である音量比率を導出する比率導出手順と、
前記楽音推移取得手順で取得した楽音推移に含まれる周波数と各周波数における強度とを表す振幅スペクトルである楽音振幅スペクトルを、前記対象楽曲に時間軸に沿って単位時間毎に導出する楽音解析手順と、
前記修正手順で生成された修正楽譜データにおける楽譜トラックの一つである対象トラックに規定された前記修正出力音が、前記修正楽譜データにおける時間軸に沿って推移した特定音推移を取得する特定音推移取得手順と、
前記特定音推移取得手順で取得した特定音推移に含まれる周波数と各周波数における強度とを表し、かつその各周波数における強度に前記比率導出手順で導出した音量比率を乗じた特定音振幅スペクトルを、前記修正楽譜データの時間軸に沿って単位時間毎に導出する特定音解析手順と、
前記楽音解析手順で導出された楽音振幅スペクトルにおける周波数における強度と、前記特定音解析手順で導出された特定音振幅スペクトルにおける周波数における強度との比を表す振幅比率を、各周波数について導出する振幅比率導出手順と、
前記振幅比率導出手順で導出された振幅比率それぞれを、前記楽音振幅スペクトルの各周波数における強度に乗じた結果である分離スペクトルから、時間軸に沿った音の推移である区間推移を導出する区間推移導出手順と、
前記区間推移導出手順にて導出した区間推移を前記対象楽曲の時間軸に沿って配することで、前記楽音推移において、前記対象トラックに対応する音源にて出力される対象音が時間軸に沿って推移した対象音推移を生成する音源分離手順とを、
コンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図6】
image rotate


【公開番号】特開2012−53205(P2012−53205A)
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願番号】特願2010−194704(P2010−194704)
【出願日】平成22年8月31日(2010.8.31)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】