(57)【要約】【課題】テンプレートを用いることなく且つ事前解析を必要とすることなく、楽曲中の打楽器音の種類を判定する。【解決手段】音声信号から、アタックを検出するアタック検出部３２と、音声信号の周波数スペクトルにおいて、アタックの位置を開始位置とした発音区間の区間形状を検出する区間検出部３３と、区間形状に応じて、検出されたアタックがスネアドラムのアタックであるかハイハットのアタックであるかを判定するスネア・ハイハット判定部３５と、を備えた。【選択図】図２
2014016552.tif 000002
【特許請求の範囲】
【請求項１】
音声信号から、アタックを検出するアタック検出ステップと、
前記音声信号の周波数スペクトルにおいて、前記アタックの位置を開始位置とした発音区間の区間形状を検出する区間形状検出ステップと、
前記区間形状に応じて、検出された前記アタックが、スネアドラムのアタックであるか、ハイハットのアタックであるか、を判定するスネア・ハイハット判定ステップと、を実行することを特徴とする音声信号処理方法。
【請求項２】
前記スネア・ハイハット判定ステップは、前記区間形状検出ステップで検出した前記発音区間の近似直線がマイナスの傾きを有する場合、前記スネアドラムのアタックであると判定し、プラスの傾きを有する場合、前記ハイハットのアタックであると判定することを特徴とする請求項１に記載の音声信号処理方法。
【請求項３】
前記スネア・ハイハット判定ステップは、前記区間形状検出ステップで検出した前記発音区間の近似直線の傾きが、同一楽曲内においてそれまで検出された各発音区間の傾きの移動平均値をとった変動閾値よりも小さい場合、前記スネアドラムの発音区間であると判定し、そうでない場合、前記ハイハットのアタックであると判定する第１スネア・ハイハット判定ステップを含むことを特徴とする請求項１に記載の音声信号処理方法。
【請求項４】
前記スネア・ハイハット判定ステップは、前記第１スネア・ハイハット判定ステップにより、前記スネアドラムの発音区間であると判定され、且つ前記周波数スペクトルの前記スネアドラムに対応する特定周波数帯域における所定時間分の振幅積算値が、同一楽曲内においてそれまで検出された振幅積算値の最大値の所定割合より大きい場合、前記スネアドラムのアタックであると判定し、そうでない場合、前記スネアドラムのアタックでないと判定する第２スネア判定ステップを含むことを特徴とする請求項３に記載の音声信号処理方法。
【請求項５】
前記スネア・ハイハット判定ステップは、前記第１スネア・ハイハット判定ステップにより、前記ハイハットの発音区間であると判定され、且つ前記周波数スペクトルの前記ハイハットに対応する特定周波数帯域における所定時間分の振幅積算値が、同一楽曲内においてそれまで検出された各発音区間の前記ハイハットに対応する特定周波数帯域における振幅積算値の移動平均値をとった変動閾値より大きい場合、前記ハイハットのアタックであると判定し、そうでない場合、前記ハイハットのアタックでないと判定する第２ハイハット判定ステップを含むことを特徴とする請求項３または４に記載の音声信号処理方法。
【請求項６】
前記区間形状検出ステップは、スネアドラムおよびハイハットに対応する特定周波数帯域における所定時間分の積算データから最小二乗法で近似直線を求め、当該近似直線を前記区間形状の一部とした前記発音区間を検出することを特徴とする請求項１ないし５のいずれか１項に記載の音声信号処理方法。
【請求項７】
周波数帯域をＮ個に分割した各部分周波数帯域で、前記発音区間の区間形状から区間長の平均値をとり、当該各部分周波数帯域における区間長の平均値を、フィルタリング対象となる基本区間として決定する基本区間決定ステップと、
前記基本区間に対し、スネアおよびハイハットを含む打楽器種類ごと且つ前記部分周波数帯域ごとに定められた固定係数を乗算し、各打楽器のフィルタリング区間を決定するフィルタリング区間決定ステップと、
前記フィルタリング区間を対象として、各打楽器の音を分離する分離ステップと、をさらに実行することを特徴とする請求項６に記載の音声信号処理方法。
【請求項８】
前記周波数スペクトルの複数フレーム分の移動平均値が、検出された前記アタック位置付近の低域の音量をＬＰＦに通した変動閾値より大きい状態が、所定時間以上継続した場合、検出された前記アタックが、バスドラムのアタックであると判定するバスドラム判定ステップをさらに実行することを特徴とする請求項７に記載の音声信号処理方法。
【請求項９】
前記フィリタリング区間決定ステップは、バスドラムの低域におけるフィルタリング区間として、前記移動平均値が前記変動閾値より小さくなった時間までを決定し、バスドラムの中・高域におけるフィルタリング区間として、前記基本区間決定ステップによって決定された基本区間に基づく所定時間分以上の区間を決定することを特徴とする請求項８に記載の音声信号処理方法。
【請求項１０】
周波数帯域をＭ個に分割した各部分周波数帯域の振幅成分の値をＬＰＦに通し、各部分周波数帯域について、「１．０−（ＬＰＦの出力値／振幅の値）」の計算式により抽出率を算出する抽出率算出ステップをさらに実行し、
前記分離ステップは、前記抽出率決定ステップによって算出されたＭ個の部分周波数帯域の各抽出率に基づいて、各打楽器の音を分離することを特徴とする請求項７ないし９のいずれか１項に記載の音声信号処理方法。
【請求項１１】
音声信号から、アタックを検出するアタック検出手段と、
前記音声信号の周波数スペクトルにおいて、前記アタックの位置を開始位置とした発音区間の区間形状を検出する区間形状検出手段と、
前記区間形状に応じて、検出された前記アタックが、スネアドラムのアタックであるか、ハイハットのアタックであるか、を判定するスネア・ハイハット判定手段と、を備えたことを特徴とする音声信号処理装置。
【請求項１２】
コンピューターに、請求項１ないし１０のいずれか１項に記載の音声信号処理方法における各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲中の打楽器音を制御する音声信号処理方法、音声信号処理装置およびプログラムに関する。
【背景技術】
【０００２】
従来、楽曲中の各楽器の音を制御する方法として、アイソレータ（バンド分割フィルタを用いたイコライザの一種）を用いた方法が知られている。ところが、アイソレータを用いて中域のレベルを下げると、打楽器音の場合、バスドラム、スネアドラム、ハイハットの音が同時に削れてしまう。つまり、スネアドラム音だけの減衰、またはハイハット音だけの減衰など、楽器別の制御はできない。
【０００３】
これに対し、楽曲中の楽器音を制御する技術として、特許文献１ないし特許文献３が知られている。特許文献１は、スペクトログラムとテンプレート（プロファイルスペクトル）を照合することにより、キックドラムやハイハットなどの打楽器音を検出する。また、特許文献２は、テンプレートや反復推定を用いることなく、スペクトログラムの周波数と時間方向の成分の異方性に着目して、打楽器音とそれ以外の楽器音とを分離する。また、特許文献３では、楽曲データの波形を事前解析することで、その楽曲データに含まれる個々の楽器音を抽出する。具体的には、時系列にラベル付けされたログスペクトルを予め用意し、当該ログスペクトルを所定時間単位で切り出した部分ログスペクトルを用いて楽器音毎に存在確率の時系列分布を求め、当該時系列分布に基づいて音素材を切り出す。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００７−５３６５８７号公報
【特許文献２】特開２００９−２１０８８８号公報
【特許文献３】特開２０１０−１３４２３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、特許文献１の技術は、事前情報としてテンプレートが必要となる。また、特許文献２の技術は、打楽器音とそれ以外の楽器音とを分離することができるものの、打楽器音を種類別に判定することができない。すなわち、スペクトログラムの打楽器別の形状分析までは行っていない。さらに、特許文献３の技術は、楽曲データの事前解析が必要であり、楽曲を再生しながらリアルタイムに楽器音を抽出することができない。
【０００６】
本発明は、上記の問題点に鑑み、テンプレートを用いることなく且つ事前解析を必要とすることなく、楽曲中の打楽器音の種類（スネアドラム音、ハイハット音など）を判定可能な、音声信号処理方法、音声信号処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の音声信号処理方法は、音声信号から、アタックを検出するアタック検出ステップと、音声信号の周波数スペクトルにおいて、アタックの位置を開始位置とした発音区間の区間形状を検出する区間形状検出ステップと、区間形状に応じて、検出されたアタックが、スネアドラムのアタックであるか、ハイハットのアタックであるか、を判定するスネア・ハイハット判定ステップと、を実行することを特徴とする。
【０００８】
本発明の音声信号処理装置は、音声信号から、アタックを検出するアタック検出手段と、音声信号の周波数スペクトルにおいて、アタックの位置を開始位置とした発音区間の区間形状を検出する区間形状検出手段と、区間形状に応じて、検出されたアタックが、スネアドラムのアタックであるか、ハイハットのアタックであるか、を判定するスネア・ハイハット判定手段と、を備えたことを特徴とする。
【０００９】
これらの構成によれば、周波数スペクトルのスペクトル形状に基づいて、検出されたアタックが、スネアドラムのアタックであるか、ハイハットのアタックであるかを判定することができる。つまり、テンプレートを用いることなく、楽曲中の打楽器音の種類を判定することができる。さらに、楽曲全体の事前解析を必要としないため、楽曲を再生しながらリアルタイムに打楽器音を判定・分離することができる。
なお、「スネアドラム」は、「ハンドクラップ」と読み替えることも可能である。つまり、検出されたアタックが、ハンドクラップのアタックであるか、ハイハットのアタックであるかを判定しても良い。
【００１０】
上記の音声信号処理方法において、スネア・ハイハット判定ステップは、区間形状検出ステップで検出した発音区間の近似直線がマイナスの傾きを有する場合、スネアドラムのアタックであると判定し、プラスの傾きを有する場合、ハイハットのアタックであると判定することを特徴とする。
【００１１】
この構成によれば、発音区間の近似直線がマイナスの傾きを有するか、プラスの傾きを有するかの違いにより、容易に打楽器音の種類を判定することができる。
【００１２】
上記の音声信号処理方法において、スネア・ハイハット判定ステップは、区間形状検出ステップで検出した発音区間の近似直線の傾きが、同一楽曲内においてそれまで検出された各発音区間の傾きの移動平均値をとった変動閾値よりも小さい場合、スネアドラムの発音区間であると判定し、そうでない場合、ハイハットのアタックであると判定する第１スネア・ハイハット判定ステップを含むことを特徴とする。
【００１３】
この構成によれば、ハイハットであっても発音区間がマイナスの傾きを有する場合があるが、スネアドラムより傾きが小さくなることは無いため、各発音区間の傾きの移動平均値をとった変動閾値で判定を行うことにより、誤判定を防ぐことができる。
【００１４】
上記の音声信号処理方法において、スネア・ハイハット判定ステップは、第１スネア・ハイハット判定ステップにより、スネアドラムの発音区間であると判定され、且つ周波数スペクトルのスネアドラムに対応する特定周波数帯域における所定時間分の振幅積算値が、同一楽曲内においてそれまで検出された振幅積算値の最大値の所定割合より大きい場合、スネアドラムのアタックであると判定し、そうでない場合、スネアドラムのアタックでないと判定する第２スネア判定ステップを含むことを特徴とする。
【００１５】
この構成によれば、スネアドラムが鳴っている箇所は、スネアドラムに対応する特定周波数帯域（例えば、１．５k〜４．２kHz）の振幅積算値の合計値が安定して大きくなるため、その最大値の所定割合を閾値とすることで、誤判定を防ぐことができる。
【００１６】
上記の音声信号処理方法において、スネア・ハイハット判定ステップは、第１スネア・ハイハット判定ステップにより、ハイハットの発音区間であると判定され、且つ周波数スペクトルのハイハットに対応する特定周波数帯域における所定時間分の振幅積算値が、同一楽曲内においてそれまで検出された各発音区間のハイハットに対応する特定周波数帯域における振幅積算値の移動平均値をとった変動閾値より大きい場合、ハイハットのアタックであると判定し、そうでない場合、ハイハットのアタックでないと判定する第２ハイハット判定ステップを含むことを特徴とする。
【００１７】
この構成によれば、ハイハットはオープンとクローズがあり、ハイハットに対応する特定周波数帯域の振幅積算値が安定して大きくなる訳ではないため、振幅積算値の移動平均値をとった変動閾値で判定を行うことにより、誤判定を防ぐことができる。
【００１８】
上記の音声信号処理方法において、区間形状検出ステップは、スネアドラムおよびハイハットに対応する特定周波数帯域における所定時間分の積算データから最小二乗法で近似直線を求め、当該近似直線を区間形状の一部とした発音区間を検出することを特徴とする。
【００１９】
この構成によれば、スネアドラムおよびハイハットに対応する特定周波数帯域における所定時間分の積算データから区間形状を求めることで、スネアドラムおよびハイハット以外の音の成分から受ける影響を低減できる。また、最小二乗法を用いることにより、発音区間の区間形状を容易に検出することができる。
【００２０】
上記の音声信号処理方法において、周波数帯域をＮ個に分割した各部分周波数帯域で、発音区間の区間形状から区間長の平均値をとり、当該各部分周波数帯域における区間長の平均値を、フィルタリング対象となる基本区間として決定する基本区間決定ステップと、基本区間に対し、スネアおよびハイハットを含む打楽器種類ごと且つ部分周波数帯域ごとに定められた固定係数を乗算し、各打楽器のフィルタリング区間を決定するフィルタリング区間決定ステップと、フィルタリング区間を対象として、各打楽器の音を分離する分離ステップと、をさらに実行することを特徴とする。
【００２１】
この構成によれば、発音区間の区間形状に基づく基本区間に、打楽器種類ごと且つ部分周波数帯域ごとに定められた固定係数を乗算することで、打楽器種類に応じた適切なフィルタリング区間を決定し、当該フィルタリング区間を対象として、特定の打楽器音を違和感無く且つ正確に分離することができる。
【００２２】
上記の音声信号処理方法において、周波数スペクトルの複数フレーム分の移動平均値が、検出されたアタック位置付近の低域の音量をＬＰＦに通した変動閾値より大きい状態が、所定時間以上継続した場合、検出されたアタックが、バスドラムのアタックであると判定するバスドラム判定ステップをさらに実行することを特徴とする。
【００２３】
この構成によれば、スネアドラム音とハイハット音だけでなく、バスドラム音の判定も行うことができる。
【００２４】
上記の音声信号処理方法において、フィリタリング区間決定ステップは、バスドラムの低域におけるフィルタリング区間として、移動平均値が変動閾値より小さくなった時間までを決定し、バスドラムの中・高域におけるフィルタリング区間として、基本区間決定ステップによって決定された基本区間に基づく所定時間分以上の区間を決定することを特徴とする。
【００２５】
この構成によれば、バスドラムについては、低域と、中・高域に分けてフィルタリング区間を決定することで、より違和感無く且つ正確にバスドラム音の分離を行うことができる。
【００２６】
上記の音声信号処理方法において、周波数帯域をＭ個に分割した各部分周波数帯域の振幅成分の値をＬＰＦに通し、各部分周波数帯域について、「１．０−（ＬＰＦの出力値／振幅の値）」の計算式により抽出率を算出する抽出率算出ステップをさらに実行し、分離ステップは、抽出率決定ステップによって算出されたＭ個の部分周波数帯域の各抽出率に基づいて、各打楽器の音を分離することを特徴とする。
【００２７】
この構成によれば、打楽器音を分離する際、打楽器音の形状を全て無音にしてしまうと違和感があるため、時間方向の移動平均値（ＬＰＦの出力値）と振幅の値を用いて抽出率を変動させることで、特定の打楽器音をより違和感無く且つ正確に分離することができる。
【００２８】
本発明のプログラムは、コンピューターに、上記の音声信号処理方法における各ステップを実行させることを特徴とする。
【００２９】
このプログラムを用いることにより、テンプレートを用いることなく且つ事前解析を必要とすることなく、楽曲中に含まれるスネアドラム音とハイハット音を判定可能な音声信号処理方法を実現できる。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施形態に係る再生装置の全体ブロック図である。
【図２】音声処理部の詳細ブロック図である。
【図３】アタック解析アルゴリズムの説明図である。
【図４】全体処理を示すフローチャートである。
【図５】区間検出処理を示すフローチャートである。
【図６】（ａ）〜（ｅ）は、区間検出アルゴリズムの説明図である。
【図７】（ａ）は、発音区間および基本区間の説明図であり、（ｂ）は、発音区間の傾きに関する説明図である。
【図８】第１スネア・ハイハット判定処理を示すフローチャートである。
【図９】第２スネア判定処理を示すフローチャートである。
【図１０】（ａ）は、第２スネア判定処理の振幅成分を積算する領域の説明図であり、（ｂ）は、第２ハイハット判定処理の振幅成分を積算する領域の説明図である。
【図１１】第２ハイハット判定処理を示すフローチャートである。
【図１２】バスドラム判定処理を示すフローチャートである。
【図１３】バスドラムの発音区間の説明図である。
【図１４】バスドラム低域区間検出処理を示すフローチャートである。
【図１５】打楽器音分離処理を示すフローチャートである。
【図１６】フィルタリング処理のアルゴリズムの説明図である。
【図１７】打楽器音の調節に関する説明図である。
【図１８】打楽器音の譜面表示の一例を示す図である。
【発明を実施するための形態】
【００３１】
以下、添付の図面を参照し、本発明の一実施形態に係る音声信号処理方法、音声信号処理装置およびプログラムについて説明する。本発明は、楽曲の再生に伴って、楽曲中の特定の打楽器音を判定・分離することを特徴とする。そこで、特定の打楽器音としてバスドラム音、スネアドラム音、ハイハット音を判定・分離する場合について説明する。
【００３２】
図１は、再生装置１の全体ブロック図である。再生装置１は、楽曲の音声信号を入力する音声入力部１１と、音声信号に対して各種音声処理を行う音声処理部１２と、音声処理後の音声信号を出力する音声出力部１３と、ユーザーが各種操作を行う操作部１４と、を備えている。なお、再生装置１としては、ＤＪ機器（ＤＪプレーヤー、ＤＪミキサーなど）、オーディオ機器（ＣＤプレーヤー、ＤＶＤプレーヤーなど）、携帯型オーディオプレーヤー、スマートフォン、エフェクター、録音機器、放送機器、などを採用可能である。また、請求項における「音声処理装置」は、音声処理部１２を指す。
【００３３】
音声入力部１１は、再生装置１が光ディスクを再生する装置である場合、光ディスクドライブから出力された音声信号を入力する。また、ＵＳＢメモリ等の記憶媒体から音声信号の読み出しが可能である場合、当該記憶媒体から音声信号を入力する。さらに、インターネット等のネットワークを介して音声信号を入力しても良い。また、音声出力部１３は、再生装置１がスピーカー内蔵の場合、アンプおよびスピーカーを指し、スピーカー内蔵ではない場合は、音声信号の出力インターフェースを指す。
【００３４】
音声処理部１２は、Ａ／Ｄコンバーター２１、ＤＳＰ２２（Digital  Signal  Processor）およびＤ／Ａコンバーター２３を含む。但し、音声入力部１１がデジタル信号を取得する場合、Ａ／Ｄコンバーター２１およびＤ／Ａコンバーター２３は不要である。
【００３５】
操作部１４は、各種操作子を指し、分離・抽出対象となる打楽器音の選択、抽出率の調整、各打楽器音の音量調整、各打楽器音に付加するエフェクト付与率の調整等に用いられる。詳細については、後述する。
【００３６】
図２は、音声処理部１２の詳細ブロック図である。音声処理部１２は、主な機能構成として、ＦＦＴ（Fast  Fourier  Transform）部３１、アタック検出部３２、区間検出部３３、バスドラム判定部３４、スネア・ハイハット判定部３５および打楽器音分離部３６を有している。なお、これら音声処理部１２内の各部は、ＤＳＰ２２（図１参照）を主要部とする。
【００３７】
ＦＦＴ部３１は、音声信号に対して高速フーリエ変換を行い、解析データ（振幅情報）を生成する。なお、本実施形態では、ＦＦＴサイズ５１２サンプル、オーバーラップ４回とする。つまり、１フレーム（ＦＦＴの処理間隔）は、１２８サンプルとする。
【００３８】
アタック検出部３２は、当該解析データから、打楽器音のアタック（発音タイミング）を検出する。具体的には、図３に示すように、全周波数帯域（５００〜１５kHz）の振幅成分の過去１フレームとの差分をとった変動閾値（点線にて図示）により判定する。つまり、変動閾値を超えたタイミング（星印にて図示）を、アタック位置として検出する。このように、変動閾値を用いることで、長時間鳴っている音の影響を少なくし、アタック位置の誤検出を防止することができる。なお、アタック位置の検出は、当該変動閾値を用いた方法に限らず、公知の技術を用いても良い。
【００３９】
区間検出部３３は、アタック後における時間軸上の音の長さ（発音区間）を検出するものであり、後述する区間検出処理（図５参照）を行う。また、区間検出部３３は、区間形状検出部３３ａおよび基本区間決定部３３ｂを含む。区間形状検出部３３ａは、音声信号をフーリエ変換した周波数スペクトル（図６（ａ）参照）の、アタックの位置を開始位置とした発音区間の区間形状を検出する。また、基本区間決定部３３ｂは、検出された発音区間に基づいて、各打楽器音を分離する際のフィルタリング対象となる基本区間を決定する。
【００４０】
バスドラム判定部３４は、検出されたアタックが、バスドラムのアタックであるか否かを判定するバスドラム判定処理（図１２参照）と、バスドラムの低域における発音区間（≒フィルタリング区間）を検出するバスドラム低域区間検出処理（図１４参照）を行う。
【００４１】
スネア・ハイハット判定部３５は、検出されたアタックが、スネアドラムのアタックであるか、ハイハットのアタックであるか、そのいずれでもないかを判定する。また、スネア・ハイハット判定部３５は、第１スネア・ハイハット判定部３５ａ、第２スネア判定部３５ｂおよび第２ハイハット判定部３５ｃを含み、それぞれ第１スネア・ハイハット処理（図８参照）、第２スネア判定処理（図９参照）および第２ハイハット判定処理（図１１参照）を行う。
【００４２】
打楽器音分離部３６は、楽曲から特定の打楽器音を分離するものであり、打楽器音分離処理（図１５参照）を行う。また、打楽器音分離部３６は、抽出率算出部３６ａ、フィルタリング区間決定部３６ｂおよび分離部３６ｃを含む。抽出率算出部３６ａは、打楽器音を分離する際の抽出率（除去率）を、時間方向の移動平均値と振幅の値を用いて周波数帯域別（Ｍ個の部分周波数帯域，本実施形態では５バンド）に算出する。フィルタリング区間決定部３６ｂは、上記の基本区間に、打楽器音（スネアドラムまたはハイハット）別且つ周波数帯域別（Ｎ個の部分周波数帯域，本実施形態では３バンド）の固定係数を乗算し、打楽器音を分離する際の最終的なフィルタリング区間を決定する。分離部３６ｃは、決定されたフィルタリング区間を対象とし、算出された抽出率に基づいて、各打楽器の音を分離する。なお、打楽器音分離処理の結果は、ＦＦＴ部３１により得られた位相情報を逆フーリエ変換した時間波形に反映され、出力される。
【００４３】
図４は、全体処理を示すフローチャートである。当該フローチャートは、音声信号（楽曲データ）が入力されている限り、１２８サンプルごとに繰り返される。つまり、本実施形態では、楽曲を再生しながらリアルタイムに打楽器音の判定を行うことが可能である。まず、高速フーリエ変換を行い、ＦＦＴサイズ５１２サンプルの解析データを生成し（Ｓ０１）、これをモノラル化する（Ｓ０２）。さらに、実数・虚数を振幅変換して（Ｓ０３）、アタックを検出する（Ｓ０４）。
【００４４】
アタックを検出すると、周波数ｂｉｎ３以上（２００Hz以上）について、区間検出処理（Ｓ０５）を行う。さらに、第１スネア・ハイハット処理（Ｓ０６）で大まかな打楽器種類の目安をつけ（スネアドラムまたはハイハットの可能性を探り）、第２ステア判定処理（Ｓ０７）および第２ハイハット判定処理（Ｓ０８）で、スネアドラムまたはハイハットの判定を確定する。一方、周波数ｂｉｎ０〜２（２００Hz以下）について、バスドラム判定処理（Ｓ０９）およびバスドラム低域区間検出処理（Ｓ１０）を行う。さらに、Ｓ０７，Ｓ０８，Ｓ１０の後、各打楽器音を分離する打楽器音分離処理を行う（Ｓ１１）。以下、Ｓ０５〜Ｓ１１の各処理について、詳細に説明する。
【００４５】
図５は、区間検出処理を示すフローチャートである。また、図６は、区間検出アルゴリズムの説明図である。図６は、時間を横軸とし、周波数を縦軸とした周波数スペクトル（打楽器音の振幅特性）を示している（同図（ａ）参照）。図５に示すように、区間検出処理では、前処理１として、周波数スペクトルの時間軸方向の平均値の差分をとる（Ｓ２１）。Ｓ２１の前処理により、打楽器音以外の、継続して鳴っている音を除去することができる（簡易残響処理，図６（ｂ）参照）。これにより、音数が多い楽曲でも、打楽器音の振幅特性を把握しやすくすることができる。
【００４６】
次に、前処理２として、前処理１を通した振幅でマイナス７０dBよりも大きい振幅を持つものをマイナス７０dBに揃える（Ｓ２２）。つまり、前処理１で見やすくした周波数スペクトルに対して、レベルを十分小さい値に揃える（図６（ｃ）参照）。これにより、アタックやピークの特別強い成分が、他の成分と同一になり、想定される最大音量を簡易的に求めることができる。
【００４７】
次に、前処理３として、前処理２を通した振幅を周波数ｂｉｎごとに、例えば２５０ms積算する（Ｓ２３）。積算する長さを２５０msとしたのは、大抵のスネアドラムおよびハイハットの発音区間は、２５０ms以内であると仮定できるためである。図６（ｄ）は、各周波数ｂｉｎを５つの矩形領域で示している。このように積算処理を行うことにより、積算した成分が、想定される最大の発音区間の何％に相当するかを計算し、それを使って発音区間を求めることができる。なお、図６（ｄ）では、簡易的に５つの矩形領域を示しているが、実際の区間検出では、６k〜１２kHzの各周波数ｂｉｎについて積算を行っている。
【００４８】
次に、アタックを検出してから２５０ms経過したか、若しくは次のアタックが来たかを判別し（Ｓ２４）、Ｓ２４：Ｎｏの場合はＳ２１〜Ｓ２３を繰り返す。一方、Ｓ２４：Ｙｅｓの場合は、６k〜１２kHzの積算データから、最小二乗法で近似直線を求める（Ｓ２５）。図６（ｅ）は、最小二乗法で求めた近似直線（ｙ切片と傾き）を点線にて示している。このように、最小二乗法で傾きを求めたことにより、簡易にスネアドラムおよびハイハットのスペクトル形状を推定・判別することができる。また、スネアドラムおよびハイハットの成分が強く、且つコード楽器の影響の少ない６k〜１２kHzの帯域のデータを用いて、中・低域の発音区間を類推することで、コード楽器（スネアドラムおよびハイハット以外の楽器）による音の影響を軽減することができる。なお、本実施形態では、０〜２００Hz付近を「低域」、２００Hz〜６０００Hz付近を「中域」、６０００〜２２０５０Hz付近を「高域」と定義する。
【００４９】
次に、周波数帯域を３つ（Ｎ個）に分割した各部分周波数帯域の長さの平均値で、ＦＦＴフィルタリングの基本区間を決定する（Ｓ２６）。本実施形態では、２００〜３kHz、３〜８kHz、８〜２２kHzの３つの部分周波数帯域別に基本区間を決定する。図７（ａ）は、発音区間および基本区間の説明図である。同図に示すように、最小二乗法で求めた発音区間の区間形状（同図斜線は、近似直線を示す）から、３つの部分周波数帯域ごとに区間長さの平均値をとり、矩形のフィルタリング形状に丸め込むことで基本区間を決定する。このように、帯域幅をある程度まとめることにより、ＦＦＴフィルタリング時（スネアドラム・ハイハット音の抽出時）に発生する異音を防止できる。
【００５０】
図８は、第１スネア・ハイハット判定処理を示すフローチャートである。第１スネア・ハイハット判定処理は、図５に示した区間検出処理で検出した発音区間の区間形状を取得し（Ｓ３１）、その傾きの値が０未満であるか否か（マイナスであるか否か）を判別する（Ｓ３２）。なお、図７（ｂ）に示すように、発音区間の傾きがマイナスである場合、スネアドラムの発音区間である可能性が高く、発音区間の傾きがプラスである場合、ハイハットの発音区間である可能性が高いと、大まかな判定ができる。但し、本実施形態では、正確性を期すため、以下の処理を行う。
【００５１】
Ｓ３２により、発音区間の傾きがマイナスであると判定した場合（Ｓ３２：Ｙｅｓ）、検出された各アタックに対して傾きを求め、その移動平均値を変動閾値とする（Ｓ３３）。そして、変動閾値よりも取得した区間形状の傾きの方が小さい場合（Ｓ３４：Ｙｅｓ）、検出したアタックが（取得した区間形状が）スネアドラムのアタックであると判定し（Ｓ３５）、取得した区間形状の傾きが変動閾値以上の場合（Ｓ３４：Ｎｏ）、ハイハットのアタックであると判定する（Ｓ３６）。このように、変動閾値で打楽器音の判別を行うことで、スネアドラムとハイハットの誤判定を防止できる（ハイハットであっても、楽曲によってはマイナスの傾きになる場合があるため）。
【００５２】
図９は、第２スネア判定処理を示すフローチャートである。第２スネア判定処理では、まず１．５ｋ〜４．２kHzの各周波数ｂｉｎを積算する（Ｓ４１）。ここで、１．５ｋ〜４．２kHzは、スネアドラムの成分が強い帯域（スネアドラムに対応する特定周波数帯域）である。また、アタックを検出してから１００ms経過したか、若しくは次のアタックが来たかを判別し（Ｓ４２）、Ｓ４２：Ｎｏの場合はＳ４１に戻る。一方、Ｓ４２：Ｙｅｓの場合は、１．５ｋ〜４．２kHzの振幅積算値を合計する（Ｓ４３）。図１０（ａ）は、Ｓ４３により振幅成分を積算する領域を示している。
【００５３】
次に、その積算値の最大値を更新する（Ｓ４４）。そして、図８に示した第１スネア・ハイハット判定処理でスネアドラムと判定されているか否かを判別し（Ｓ４５）、判定されている場合は（Ｓ４５：Ｙｅｓ）、さらにＳ４３で算出した積算値がＳ４４で算出した最大値の８０％（所定割合）より大きいか否かを判別し（Ｓ４６）、大きい場合（Ｓ４６：Ｙｅｓ）は、スネアドラムのアタックであると確定する（Ｓ４７）。一方、Ｓ４５：ＮｏおよびＳ４６：Ｎｏの場合は、スネアドラムのアタックではないと判定する（Ｓ４８）。このように、スネアドラムが鳴っている箇所は、１．５ｋ〜４．２kHzの振幅成分の合計値が安定して大きくなるため、その最大値の所定割合を閾値として判定することで、より正確な判定結果が期待できる。
【００５４】
図１１は、第２ハイハット判定処理を示すフローチャートである。第２ハイハット判定処理では、まず６ｋ〜１７kHzの各周波数ｂｉｎを積算する（Ｓ５１）。ここで、６ｋ〜１７kHzは、ハイハットの成分が強い帯域（ハイハットに対応する特定周波数帯域）である。また、アタックを検出してから１００ms経過したか、若しくは次のアタックが来たかを判別し（Ｓ５２）、Ｓ５２：Ｎｏの場合はＳ５１に戻る。一方、Ｓ５２：Ｙｅｓの場合は、６ｋ〜１７kHzの振幅積算値を合計する（Ｓ５３）。図１０（ｂ）は、Ｓ５３により振幅成分を積算する領域を示している。
【００５５】
次に、検出された各アタックに対して、特定領域（６ｋ〜１７kHz）で１００msの積算値をとり、その移動平均値を変動閾値とする（Ｓ５４）。そして、図８に示した第１スネア・ハイハット判定処理でハイハットと判定されているか否かを判別し（Ｓ５５）、判定されている場合は（Ｓ５５：Ｙｅｓ）、さらにＳ５３で算出した積算値がＳ５４で算出した変動閾値より大きいか否かを判別し（Ｓ５６）、大きい場合は（Ｓ５６：Ｙｅｓ）、ハイハットのアタックであると確定する（Ｓ５７）。一方、Ｓ５５：ＮｏおよびＳ５６：Ｎｏの場合は、ハイハットのアタックではないと判定する（Ｓ５８）。このように、ハイハットはオープンとクローズがあり、常に６ｋ〜１７kHzが安定して大きいわけではないため、積算値の移動平均値を変動閾値として判定することで（また、比較的時定数の大きいＬＰＦ（Low  Pass  Filter）により算出することで）、より正確な判定結果が期待できる。
【００５６】
図１２は、バスドラム判定処理を示すフローチャートである。なお、当該バスドラム判定処理は、周波数ｂｉｎ０，１，２（２００Hz以下の低域区間）を対象とし、バスドラムの胴なりの有無でバスドラムのアタックであるか否かを判定する（図１３参照）。バスドラム判定処理では、まず比較的時定数の大きい（例えばカットオフ周波数１Hzの）ＬＰＦからアタック付近の平均値を算出し、変動閾値とする（Ｓ６１）。つまり、ベース音との誤判定を避けるため、定常的に鳴っているベースの音量を検出して閾値とする。次に、アタックから１５０ms以内であるか否かを判別し（Ｓ６２）、Ｓ６２：Ｎoの場合は、バスドラムのアタックではないと判定する（Ｓ６７）。つまり、非常に短い時間間隔（１５０ms以内）でバスドラムが発音されることは無いため、当該判定により誤検出を防止できる。
【００５７】
また、Ｓ６２：Ｙｅｓの場合は、４フレーム分の移動平均を取る（Ｓ６３）。これは、ＦＦＴサイズが小さいと、周波数分解能が低く、低域の波形が乱れるためである（ＦＦＴサイズを大きくすることで、その乱れを低減できる）。そして、変動閾値よりも移動平均値の方が大きいか否かを判別し（Ｓ６４）、大きい場合は（Ｓ６４：Ｙｅｓ）、上記の状態が６０ms以上続いたか否かを判別し（Ｓ６５）、続いている場合は（Ｓ６５：Ｙｅｓ）、バスドラムのアタックと判定する（Ｓ６６）。一方、Ｓ６４：ＮoおよびＳ６５：Ｎｏの場合は、バスドラムのアタックではないと判定する（Ｓ６７）。このように、変動閾値を用いて判定を行うことで、ベース音との誤検出を防止できる。また、その状態が６０ms以上続いたか否かを判別することで、バスドラムのアタックの盛り上がり区間を判定でき（胴なりが６０ms以上続いたか否かを判定でき）、より正確な判定結果が期待できる。
【００５８】
図１４は、バスドラム低域区間検出処理を示すフローチャートである。当該処理では、２００Hz以下の低域区間におけるバスドラムの発音区間（以下、「バスドラム低域区間」と称する）を判定する（図１３参照）。中・高域区間の発音区間については、図５に示した区間検出処理の結果を用いて判定する。バスドラム低域区間検出処理では、Ｓ６１と同様に、比較的時定数の大きい（例えばカットオフ周波数１Hzの）ＬＰＦからアタック付近の平均値を算出し、変動閾値とする（Ｓ７１）。次に、図１２のバスドラム判定処理でバスドラムのアタックであると判定されたか否かを判別し（Ｓ７２）、判定されていない場合は（Ｓ７２：Ｎｏ）、バスドラム低域区間検出処理を終了する。
【００５９】
また、Ｓ７２：Ｙｅｓの場合は、バスドラムを確定した時間から５００ms以内であるか否かを判別し（Ｓ７３）、５００msを超えた場合は（Ｓ７３：Ｎｏ）、バスドラムの区間を確定する（Ｓ７６）。つまり、バスドラムの最大発音区間を５００msとして規定する。また、Ｓ７３：Ｙｅｓの場合は、Ｓ６３と同様に、４フレーム分の移動平均を取り（Ｓ７４）、変動閾値よりも移動平均値の方が小さいか否かを判別する（Ｓ７５）。変動閾値よりも移動平均値の方が小さい場合は（Ｓ７５：Ｙｅｓ）、その時点でバスドラムの区間を確定する（Ｓ７６）。つまり、変動閾値よりも移動平均値の方が小さくなったところを、バスドラム低域区間の終わりとみなす。一方、Ｓ７５：Ｎoの場合は、Ｓ７３，Ｓ７４を繰り返す。このように、変動閾値を用いて判定を行うことで、ベース音と誤検出することなく、バスドラム低域区間を正確に検出することができる。
【００６０】
図１５は、打楽器音分離処理を示すフローチャートである。打楽器音分離処理では、周波数帯域を５つ（Ｍ個）に分割した各部分周波数帯域の振幅成分の値を、それぞれカットオフ周波数１．５HzのＬＰＦに通す（Ｓ８１）。本実施形態では、０〜９９１Hz、９９１〜２９７２Hz、２９７２〜５０３９Hz、５０３９〜７９５７Hz、７９５７〜２２０５０Hzの各部分周波数帯域に分割する。このように、帯域幅をある程度まとめることによって、スネアドラムおよびハイハット音抽出時の異音を軽減することができる。
【００６１】
次に、各部分周波数帯域で、１．０−（ＬＰＦの出力値／振幅の値）の計算式に基づき、抽出率を求める（Ｓ８２）。図１６は、フィルタリング処理アルゴリズムの説明図である。同図に示すように、ＬＰＦの出力値と振幅の値の差が大きい場合、抽出率を大きくし、ＬＰＦの出力値と振幅の値の差が小さい場合、抽出率を小さくする。このように、ＬＰＦの出力値と振幅の値を用いて除去率を変動させることにより、特定の打楽器音を違和感無く且つ正確に分離することができる。
【００６２】
次に、各部分周波数帯域における抽出率が０以上であるか否かを判別し（Ｓ８３）、０以下の場合は（Ｓ８３：Ｎｏ）、抽出率を０にする（Ｓ８４）。つまり、ＬＰＦの出力値の方が振幅の値より大きい場合は、抽出率を０にする。続いて、これまでの判定処理により、アタックがバスドラムであると判定されたか否かを判別し（Ｓ８５）、判定されている場合は（Ｓ８５：Ｙｅｓ）、中・高域区間（図１３参照）のフィルタリング区間として、区間検出処理で検出された基本区間に基づく最低帯域幅２４ms以上の区間を決定する（Ｓ８６）。つまり、中・高域区間のフィルタリング区間は、区間検出処理で検出された基本区間を用いるが、３つ（Ｎ個）の各部分周波数帯のうち、区間長さが２４msに満たない帯域幅については２４msとする。また、低域区間のフィルタリング区間は、図１４のバスドラム低域区間検出処理で検出したバスドラム低域区間を用いる。
【００６３】
次に、アタックがスネアドラムであるか否かを判別する（Ｓ８７）。スネアドラムと判定されている場合は（Ｓ８７：Ｙｅｓ）、区間形状に、スネアドラム固有のＮ個の部分周波数帯域別固定係数を乗算して、フィルタリング区間を決定する（Ｓ８８）。また、アタックがスネアドラムでないと判定されている場合は（Ｓ８７：Ｎｏ）、アタックがハイハットであるか否かを判別する（Ｓ８９）。ハイハットと判定されている場合は（Ｓ８９：Ｙｅｓ）、区間形状に、ハイハット固有のＮ個の部分周波数帯域別固定係数を乗算して、フィルタリング区間を決定する（Ｓ９０）。なお、ハイハットの部分周波数帯域別固定係数は、スネアドラムと比較して、低・中域の固定係数が小さく、高域の固定係数が大きく設定される。
【００６４】
次に、アタックがいずれの打楽器音（バスドラム、スネアドラム、ハイハット）でもない場合は、Ｎ個の部分周波数帯域別固定係数を全て０（ゼロ）とする（Ｓ９１）。以上の工程により、フィルタリング区間を決定した後は、Ｎ個の部分周波数帯域別フィルタリング区間と、Ｍ個の部分周波数帯域別抽出率に基づいて、各打楽器音を分離する（Ｓ９２）。
【００６５】
次に、分離した各打楽器音の応用例について説明する。図１７は、各打楽器音の調節に関する説明図である。同図に示すように、バスドラム、スネアドラム、ハイハット、３音以外の、それぞれの音量を、ロータリー型操作子５１（操作部１４の一部，図１参照）を用いて調節しても良い。また、音量ではなく、それぞれの抽出率を調節可能としても良い。この場合、調節可能な抽出率の最大値は、図１５のＳ８２で算出した抽出率であっても良いし、その実数倍の値としても良い。また、調節可能な抽出率の最小値は、０（ゼロ）とすることが好ましい。
【００６６】
その他、バスドラム、スネアドラム、ハイハット、３音以外の、それぞれの音に対し、異なるエフェクトをかけても良い。また、そのエフェクト付与率（加工処理量）を、ロータリー型操作子５１を用いて調節可能としても良い。エフェクトとしては、ディレイ、リバーブ、エコーなど、ＤＪ機器のエフェクター等で用いられる各種音響効果を適用可能である。操作方法としては、例えばバスドラムに対応したロータリー型操作子５１を右側に回転させると、バスドラム音の数を徐々に増加させ（ディレイをかけて足していき）、左側に回転させると、バスドラム音の数を徐々に減衰させる、などが考えられる。なお、操作子の形態は、ロータリー型操作子５１に限らず、フェーダー型操作子やタッチパネルなどその種類を問わない。
【００６７】
また、図１８に示すように、抽出した打楽器音を譜面表示しても良い。つまり、バスドラム、スネアドラム、ハイハットの判別結果をＭＩＤＩ（Musical  Instrument  Digital  Interface）化し、ドラム譜面５２として用いても良い。この場合、ハイハットについては、オープンハイハットとクローズハイハットに分けて表示することが好ましい。また、スネアドラムに代えて、ハンドクラップを譜面表示しても良い。ハンドクラップは、スネアドラムと同様の処理工程により、判定・分離可能である。
【００６８】
また、特に図示しないが、ドラムをＭＩＤＩで鳴らし、音色を切り替えても良い。つまり、判定した各打楽器音のアタックのタイミングで、別の音（アコースティックドラムなど）を出力しても良い。また、抽出した打楽器音をサンプリングし、ユーザーが入力したシーケンスにしたがって（若しくはユーザーが指定した出力タイミングで）、各打楽器音を出力しても良い。
【００６９】
以上説明したとおり、本実施形態によれば、音声信号をフーリエ変換した周波数スペクトルのスペクトル形状に基づいて、検出されたアタックが、スネアドラムのアタックであるか、ハイハットのアタックであるかを判定することができる。つまり、テンプレートを用いることなく、楽曲中の打楽器音の種類を判定することができる。さらに、楽曲全体の事前解析を必要としないため、楽曲を再生しながらリアルタイムに打楽器音を判定・分離することができる。
【００７０】
また、第１スネア・ハイハット判定処理では、発音区間の近似直線の傾きが、同一楽曲内においてそれまで検出された各発音区間の傾きの移動平均値をとった変動閾値よりも小さいか否かに応じて、スネアドラムとハイハットを区別する。つまり、単純に発音区間の傾きのみで判定すると、ハイハット音をスネアドラム音と誤判定する可能性があるが、ハイハットの場合、傾きがマイナスになることはあってもスネアドラムよりその傾きが小さくなることは無いため、各発音区間の傾きの移動平均値をとった変動閾値で判定を行うことにより、誤判定を防ぐことができる。
【００７１】
また、第２スネア判定処理では、スネアドラムが鳴っている箇所は、スネアドラムに対応する特定周波数帯域（例えば、１．５k〜４．２kHz）の振幅積算値の合計値が安定して大きくなるため、その最大値の所定割合を閾値とすることで、誤判定を防ぐことができる。これに対し第２ハイハット判定処理では、ハイハットにオープンとクローズがあることから、ハイハットに対応する特定周波数帯域（例えば、６k〜１７kHz）の振幅積算値の合計が安定して大きくなる訳ではないため、振幅積算値の移動平均値をとった変動閾値で判定を行うことにより、誤判定を防ぐことができる。
【００７２】
また、区間検出処理では、スネアドラムおよびハイハットに対応する特定周波数帯域（６k〜１２kHz）における所定時間分の積算データから区間形状を求めることで、スネアドラムおよびハイハット以外の音の成分から受ける影響を低減できる。また、最小二乗法を用いることにより、発音区間の区間形状を容易に検出することができる。
【００７３】
また、打楽器音分離処理では、スネアドラム音またはハイハット音の発音区間の区間形状に基づく基本区間に、打楽器種類ごと且つ部分周波数帯域ごとに定められた固定係数を乗算することで、打楽器種類に応じた適切なフィルタリング区間を決定するため、スネアドラム音またはハイハット音を違和感無く且つ正確に分離することができる。
【００７４】
また、スネアドラム音とハイハット音だけでなく、バスドラム音の判定・抽出も行うことができるため、抽出した各打楽器音の応用範囲を広げることができる。また、打楽器音分離処理では、打楽器音を分離する際、打楽器音の形状を全て無音にしてしまうと違和感があるため、時間方向の移動平均値（ＬＰＦの出力値）と振幅の値を用いて抽出率を変動させることで、各打楽器音を違和感無く且つ正確に分離することができる。
【００７５】
なお、上記の実施形態では、スネアドラムとハイハットを、２段階の判定処理を経て判別したが（第１スネア・ハイハット判定処理、第２スネア判定処理および第２ハイハット判定処理）、単純に区間形状だけで、スネアドラムとハイハットを判定しても良い。つまり、発音区間がマイナスの傾きを有する場合、スネアドラムのアタックであると判定し、プラスの傾きを有する場合、ハイハットのアタックであると判定しても良い。この構成によれば、少ない演算量で、容易に打楽器音を区別することができる。
【００７６】
また、上記の各実施形態に示した再生装置１における各部および各機能をプログラムとして提供することが可能である。また、そのプログラムを各種記録媒体（ＣＤ−ＲＯＭ、フラッシュメモリ等）に格納して提供することも可能である。すなわち、コンピューターを、再生装置１の各部として機能させるためのプログラム、およびそれを記録した記録媒体も、本発明の権利範囲に含まれる。
【００７７】
また、上記の実施形態では、本発明の音声処理装置（音声処理部１２）を再生装置１に適用した場合を例示したが、ネットワーク上のサーバーで本発明の音声処理装置を実現しても良い。この場合、サーバーと、当該サーバーとネットワークを介して接続されたユーザー端末と、によって、本発明を実現するための通信システムが構築され、サーバーが、上記の実施形態における音声処理部１２を実現し、ユーザー端末が、操作部１４を実現する。また、クラウドコンピューティングにも、本発明を適用可能である。つまり、サーバー上のアプリケーションを利用した仮想端末により、本発明の再生装置１または音声処理部１２を実現しても良い。
【００７８】
また、ＰＣアプリケーションやスマートフォンアプリケーションで本発明の音声処理装置を実現しても良い。この場合、当該ＰＣアプリケーションをインストールしたコンピューター、またはスマートフォンアプリケーションをインストールしたスマートフォンにより再生装置１を実現可能である。その他、再生装置１の装置構成や処理工程など、本発明の要旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【００７９】
１…再生装置  １１…音声入力部  １２…音声処理部  １３…音声出力部  １４…操作部  ２１…Ａ／Ｄコンバーター  ２２…ＤＳＰ  ２３…Ｄ／Ａコンバーター  ３１…ＦＦＴ部  ３２…アタック検出部  ３３…区間検出部  ３３ａ…区間形状検出部  ３３ｂ…基本区間決定部  ３４…バスドラム判定部  ３５…スネア・ハイハット判定部  ３５ａ…第１スネア・ハイハット判定部  ３５ｂ…第２スネア判定部  ３５ｃ…第２ハイハット判定部  ３６…打楽器音分離部  ３６ａ…抽出率算出部  ３６ｂ…フィルタリング区間決定部  ３６ｃ…分離部  ５１…ロータリー型操作子  ５２…ドラム譜面
【図１】
2014016552.tif 000003
【図２】
2014016552.tif 000004
【図３】
2014016552.tif 000005
【図４】
2014016552.tif 000006
【図５】
2014016552.tif 000007
【図６】
2014016552.tif 000008
【図７】
2014016552.tif 000009
【図８】
2014016552.tif 000010
【図９】
2014016552.tif 000011
【図１０】
2014016552.tif 000012
【図１１】
2014016552.tif 000013
【図１２】
2014016552.tif 000014
【図１３】
2014016552.tif 000015
【図１４】
2014016552.tif 000016
【図１５】
2014016552.tif 000017
【図１６】
2014016552.tif 000018
【図１７】
2014016552.tif 000019
【図１８】
2014016552.tif 000020