(57)【特許請求の範囲】
【請求項１】
入力される楽音信号の振幅エンベロープを生成するエンベロープ生成手段と、
上記振幅エンベロープを予め設定された振幅しきい値と比較し、上記振幅エンベロープが上記振幅しきい値を越えた位置より時間的に前に遡って振幅エンベロープの極小値の位置を探索しアタック位置として決定するアタック位置検出手段と
備えた楽音信号のアタック位置検出装置。
【請求項２】
請求項１に記載の楽音信号のアタック位置検出装置において、上記アタック位置検出手段は、上記振幅エンベロープの極大値を探索した後、振幅エンベロープを予め設定された振幅しきい値と比較することを特徴とする楽音信号のアタック位置検出装置。
【請求項３】
請求項１または２に記載の楽音信号のアタック位置検出装置において、上記アタック位置検出手段は、一度アタック位置を検出した後は、所定時間の間アタック位置検出を行わないでアタック位置検出を休止することを特徴とする楽音信号のアタック位置検出装置。
【請求項４】
請求項１ないし３のいずれかに記載の楽音信号のアタック位置検出装置において、上記エンベロープ生成手段の前段に、入力される楽音信号をフィルタ処理する異なる通過帯域を有する２つの帯域通過フィルタを設け、これらフィルタを介した楽音信号を上記エンベロープ生成手段に入力させることを特徴とする楽音信号のアタック位置検出装置。
【請求項５】
請求項４に記載の楽音信号のアタック位置検出装置において、上記２つのフィルタと上記エンベロープ生成手段の間に、上記２つのフィルタの出力信号を所定の重み付け合成してノルム演算し正出力を得るノルム生成手段を設け、当該ノルム生成手段を介した楽音信号を上記エンベロープ生成手段に入力させることを特徴とする楽音信号のアタック位置検出装置。
【請求項６】
請求項５に記載の楽音信号のアタック位置検出装置において、上記ノルム生成手段と上記エンベロープ生成手段との間に、上記ノルム生成手段の出力信号を一定時間毎に分割した各区間サンプルから一つの代表サンプルだけを得て間引きデータを出力する間引き手段を設け、当該間引き手段を介した楽音信号を上記エンベロープ生成手段に入力させることを特徴とする楽音信号のアタック位置検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、単一または複数の楽器及び歌唱からなる楽音信号データから自動的に発音開始タイミングを検出するアタック位置検出装置に関するもので、特に、ビート検出、テンポ検出、ピッキング検出、タイムストレッチ、タイムスライスなど種々の技術に応用して好適なものである。
【０００２】
【従来の技術】
従来用いられているアタック検出（またはピーク検出）の手法の一例を示す。
図７に最も基本的な１つの振幅しきい値との比較を用いる方法を示す。
図７に示す構成では、入力波形からエンベロープ生成手段１０により振幅エンベロープを生成し、アタック位置検出手段１１により入力される振幅エンベロープを予め定められた振幅しきい値と比較し、振幅エンベロープがしきい値を越えたタイミングで出力信号としてパルスを発生することで、アタック位置を検出するようにしている。
【０００３】
【発明が解決しようとする課題】
しかしながら、このような単純な方法では、一般に、しきい値の設定によっては、例えば振幅の大きいバスドラム等の低音域リズム楽器が鳴っているような場合は良いが、振幅の小さいシンバル等の高音域リズム楽器が入ると、振幅エンベロープが振幅しきい値を越えない場合が多い為、低音域リズム楽器が一定のテンポでなるような楽曲のビート検出としては利用できても、アタック検出としては検出精度は良くないことが知られている。
【０００４】
また、この方法で検出されるアタック位置は、エンベロープが真のアタック開始時刻からしきい値を越えるまでの時間分だけ若干遅れる問題点も知られている。
【０００５】
このような問題点を解消するための種々の改良方法が提案されている。
例えば特開平５−６１７２号公報では、図７の構成に加えて、ユーザーによるガイドタッピングの情報を併用する例が用いられている。
この方法では、図７の構成で検出されるアタック位置では通常遅すぎて真のアタック位置が検出されないので、一定のアタックオフセットＡＯＦ時間を設け、得られた振幅エンベロープが定められた振幅しきい値（トリガースレッシュホールドＴＨ）を越えた時間より一律に前のＡＯＦ時間にアタック位置を設定するようになっているが、必ずしも真のアタック位置を検出するものではない。
【０００６】
また、図７に示す構成では、楽曲全体の振幅変動などに対応できない。つまり、曲全体の音量が大きい所と小さい所で検出精度に差が出るため、改良方法が提案されている。例えば実公平５−２６６３９号公報に示されたものと同様なテンポ検出装置を図８に示す。図８に示す構成では、エンベロープ生成手段１０の前に、入力波形の所定レベルを超える振動部を検出する比較手段１２を設けて、設定されるレベルをアタック位置検出手段１１の出力信号に応じて制御するもので、楽曲全体の振幅変動に対応できる反面、一般に振幅が小さいことが知られている高音域リズム楽器の振幅エンベロープの最大値は楽曲全体の振幅変動の範囲の上限を下回ることが多いことが経験的に知られており、入力信号に高音域リズム楽器が刻むビートがあった場合などは正確なアタック位置検出ができないことがあった。
【０００７】
さらに、例えば特開平１０−３１４９０号公報では、親波形データを分割して子波形データに分ける際に用いる振幅しきい値との比較手段を利用して、分割の度に新たな１つの振幅しきい値を設定し、結果的に複数回の振幅しきい値との比較手段を設けることで検出精度を上げているが、この新たな振幅しきい値は分割の度にユーザーが新たに与える必要があった。
【０００８】
また一方で、アタック検出に有効な情報は、楽音信号の低域と高域に集中していることが経験的に知られているので、例えば特開昭６２−２０５３９７号公報では、その帯域の信号だけをフィルタで取り出しアタック検出に用いる方法が提案されているが、帯域通過フィルタの特性は低域通過「または」高域通過であるとしたため、ユーザーが入力しようとする楽音信号の特性を予め把握した上で、その特性に対して効果的なフィルタ特性をユーザーが選択する必要があった。
【０００９】
この発明は、上述した点に鑑みてなされたもので、ユーザーが検出の途中で手を加えることなく、自動的に精度よくかつ早期にアタック位置検出を行うことができる楽音信号のアタック位置検出装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る楽音信号のアタック位置検出装置は、入力される楽音信号の振幅エンベロープを生成するエンベロープ生成手段と、上記振幅エンベロープを予め設定された振幅しきい値と比較し、上記振幅エンベロープが上記振幅しきい値を越えた位置より時間的に前に遡って振幅エンベロープの極小値の位置を探索しアタック位置として決定するアタック位置検出手段と備えたものである。
【００１１】
また、上記アタック位置検出手段は、上記振幅エンベロープの極大値を探索した後、振幅エンベロープを予め設定された振幅しきい値と比較することを特徴とするものである。
【００１２】
また、上記アタック位置検出手段は、一度アタック位置を検出した後は、所定時間の間アタック位置検出を行わないでアタック位置検出を休止することを特徴とするものである。
【００１３】
また、上記エンベロープ生成手段の前段に、入力される楽音信号をフィルタ処理する異なる通過帯域を有する２つの帯域通過フィルタを設け、これらフィルタを介した楽音信号を上記エンベロープ生成手段に入力させることを特徴とするものである。
【００１４】
また、上記２つのフィルタと上記エンベロープ生成手段の間に、上記２つのフィルタの出力信号を所定の重み付け合成してノルム演算し正出力を得るノルム生成手段を設け、当該ノルム生成手段を介した楽音信号を上記エンベロープ生成手段に入力させることを特徴とするものである。
【００１５】
さらに、上記ノルム生成手段と上記エンベロープ生成手段との間に、上記ノルム生成手段の出力信号を一定時間毎に分割した各区間サンプルから一つの代表サンプルだけを得て間引きデータを出力する間引き手段を設け、当該間引き手段を介した楽音信号を上記エンベロープ生成手段に入力させることを特徴とするものである。
【００１６】
【発明の実施の形態】
実施の形態１．
図１は実施の形態１に係る楽音信号のアタック位置検出装置の構成を示すブロック図である。
図１において、１と２は、例えばドラム音などの低域信号を取り出す低域通過フィルタでなる帯域通過フィルタとシンバル音などの高域信号を取り出す高域通過フィルタでなる帯域通過フィルタであり、異なる通過帯域を有する２つの帯域通過フィルタ１と２によりアタック位置検出に邪魔になる中音域を除去する。
【００１７】
また、３は、通常振幅レベルの小さい高域通過フィルタ２の出力信号の重みを大きくして低域通過フィルタ１の出力信号と合成しつつ正出力を得るなど、２つの帯域通過フィルタ１と２の出力を重み付け合成しながら正出力を得る重み付け合成ノルム生成手段であり、具体的には、帯域通過フィルタ１の出力をＬＰＦとすると共に、帯域通過フィルタ２の出力をＨＰＦとし、重み付け係数をａ，ｂ（ａ≪ｂ）としたとき、例えばａ（ＬＰＦ）２＋ｂ（ＨＰＦ）２やａ│ＬＰＦ│＋ｂ│ＨＰＦ│などの演算を行う。
【００１８】
また、４は、これら帯域通過フィルタ１と２及び重み付け合成ノルム生成手段３を介した楽音信号の振幅エンベロープを生成するエンベロープ生成手段であり、例えば積分回路を用いてその正出力をスムージングし振幅エンベロープを生成する。
【００１９】
さらに、５は、上記エンベロープ生成手段４からの振幅エンベロープを予め設定された振幅しきい値と比較し、上記振幅エンベロープが上記振幅しきい値を越えた位置より時間的に前に遡って振幅しきい値の極小値の位置を探索しアタック位置として決定するアタック位置検出手段であり、一度アタック位置を検出した後は、所定時間の間アタック位置検出を行わないでアタック位置検出を休止するようになされている。
【００２０】
次に、上記構成に係る動作について図２に示すアタック位置検出手段５の動作フローチャート及び図３に示すエンベロープ生成手段４から出力される振幅エンベロープ波形図を参照して説明する。
今、アタック位置検出手段５には、エンベロープ生成手段４から図３に示す如く振幅エンベロープのデータ列が入力され順次内蔵メモリに記憶される。
【００２１】
アタック位置検出手段５は、図２に示すように、まず、アタック位置検出フラグＡＦを０に、エンベロープインデックスｎを０にする初期設定を行う（ステップＳ１）。アタック位置検出フラグＡＦを０にする初期設定が行われていれば（ステップＳ２でＹＥＳ）、ステップＳ３及びＳ４に移行して振幅エンベロープを予め設定された振幅しきい値と比較し、振幅しきい値を越える振幅エンベロープの値を探索する。
【００２２】
すなわち、ステップＳ３及びＳ４において、エンベロープインデックスがｎ−１である振幅エンベロープＥ（ｎ−１）が振幅しきい値ＴＬより小さく、エンベロープインデックスが１つ先のｎである振幅エンベロープＥ（ｎ）が振幅しきい値ＴＬ以上である振幅エンベロープの値を探索する。
【００２３】
このステップＳ３及びＳ４ともにＹＥＳとなる振幅エンベロープの値が探索できれば、図３に示す如く、振幅しきい値を越えた位置より時間的に前に遡れば振幅エンベロープの値が極小値を示すアタック位置が存在するので、ステップＳ５以降の極小値探索ループに移行する。
【００２４】
極小値探索ループでは、まず、ステップＳ５において、テンポラリインデックスｉをｉ＝ｎ−１に設定し、ステップＳ６において、そのテンポラリインデックスによる振幅エンベロープデータＥ（ｉ）の値が左右のデータＥ（ｉ−１）及びＥ（ｉ＋１）よりも小さい値、つまり極小値であるか否かを判定する。ここで、判定結果、ＮＯであれば、テンポラリインデックスｉをｉ−１に設定し、ステップＳ６に戻り、さらに時間的に前に遡って極小値を検索し、極小値を探索できれば、ステップＳ８に移行し、極小値を示すインデックスＮｍ−をその時のテンポラリインデックスｉに設定してアタック位置として決定する。
【００２５】
その後は、振幅エンベロープに激しく変化する楽音が含まれる場合に、１つのアタック音のみが存在するにも拘わらずピークが短い時間内に複数出現してアタック位置検出が誤検出されるのを防止するためのアタック位置検出を休止させるために、ステップＳ９において、カウントダウン時間ｔを設定時間Ｔｏｔｈ（図３参照）に設定すると共に、アタック位置検出フラグＡＦを１に設定する。
【００２６】
さらに、ステップＳ１０において、サンプルするエンベロープインデックスｎを１進め、ステップＳ１１において、その進めたインデックスの値ｎが設定値Ｎでなければ、ステップＳ２以降を繰り返し、設定値Ｎに達していれば終了する。ステップＳ２に戻り、アタック位置が検出されている状態では、アタック位置検出フラグＡＦが０でないので、１つのアタック音のみが存在するにも拘わらずピークが短い時間内に複数出現してアタック位置検出が誤検出されるのを防止するためのアタック位置検出休止ループとなるステップＳ１２〜Ｓ１４に移行する。
【００２７】
アタック位置検出休止ループでは、ステップＳ１２では時間ｔを１減じ、ステップＳ１３ではその減じられた時間ｔが０であるか否かを判定し、０でなければステップＳ１０及びＳ１１を経てステップＳ２以降を繰り返し、０であれば、つまり設定時間Ｔ０ｔｈ が経過すれば、ステップＳ１４において、アタック位置検出フラグＡＦを０に戻し、ステップＳ１０及びＳ１１を経てステップＳ２以降を繰り返すようにする。
【００２８】
このように、上記実施の形態１によれば、振幅エンベロープが振幅しきい値を越えた位置より時間的に前に遡ってエンベロープの極小値を探索しアタック位置として決定するようにしたので、振幅しきい値を越える位置をアタック位置として定める場合よりも真のアタック位置を早くかつ的確に検出することができる。
また、設定する振幅しきい値のレベルを下げる場合には、それによって、雑音を拾ってアタック位置を誤検出することがあったが、この実施の形態では、振幅しきい値のレベルを下げることなく高いレベルの状態のままでアタック位置を的確に検出できる。
【００２９】
また、アタック位置を検出したら一定時間アタック位置検出を休止するようにして一定時間内に複数のピークが現れたら一番先頭のピークだけを検出するようにしたので、元の楽音信号に振幅エンベロープの激しく変化する楽音などが含まれれて１つのアタックであるにも拘わらずピークが短い時間内に複数出現する場合でも、アタック検出の誤検出を防止できる。
【００３０】
また、エンベロープ生成手段４の前段に、入力される楽音信号をフィルタ処理する異なる通過帯域を有する２つの帯域通過フィルタ１及び２を設けるようにしたので、振幅エンベロープの立ち上がりが緩やかな為にアタック検出の際に悪影響を与える信号が多く含まれる中音域を除去することができる。
【００３１】
さらに、上記２つのフィルタの出力信号を所定の重み付け合成してノルム演算し正出力を得る重み付け合成ノルム生成手段３を設け、当該ノルム生成手段を介した楽音信号をエンベロープ生成手段４に入力させるようにしたので、高域信号の重みを大きくして低域信号と重み付け合成することで、通常振幅レベルの小さい高域信号のアタック位置検出の精度を上げることができる。
なお、重み付け合成ノルム生成手段３とエンベロープ生成手段４との間に対数変換手段を設けて、振幅エンベロープの大小が激しい楽音信号を入力しても精度よくアタック検出が行われるようにすることもできる。
【００３２】
実施の形態２．
上述した実施の形態１では、振幅エンベロープと予め設定されたしきい値とを比較し、振幅エンベロープがしきい値を越えた位置より時間的に前に遡って振幅エンベロープの極小値の位置を探索することで、アタック位置を決定するようにしているが、振幅エンベロープの極大値を探索した後、振幅エンベロープと予め設定されたしきい値とを比較し、振幅エンベロープがしきい値を越えた位置より時間的に前に遡って振幅エンベロープの極小値の位置を探索することで、アタック位置を決定するようにしてよい。
【００３３】
すなわち、この実施の形態２では、図２に示すフローチャートにおいて、ステップＳ３の判定内容を、Ｅ（ｎ）＞Ｅ（ｎ−１）かつＥ（ｎ）≧Ｅ（ｎ＋１）であるか否か、つまり左右の値より大きいか否かを判定する内容に書き換えると共に、ステップＳ９の設定時間をＴ０ｍａｘ（＜Ｔ０ｔｈ）に設定換えするようにしたもので、アタック位置検出手段５により、振幅エンベロープの極大値を探索した後、振幅エンベロープを予め設定された振幅しきい値と比較し、振幅エンベロープが振幅しきい値を越えた位置より時間的に前に遡って振幅エンベロープの極小値の位置を探索しアタック位置として決定するようにしたものである。
【００３４】
図４は実施の形態２に係るアタック位置の検出動作を説明する振幅エンベロープ波形図である。
図４に示す振幅エンベロープ波形では、極大値として、Ｅ（Ｎ０＋），Ｅ（Ｎ１＋），Ｅ（Ｎ２＋），Ｅ（Ｎ３＋）が、また、極小値として、Ｅ（Ｎ０−），Ｅ（Ｎ１−），Ｅ（Ｎ２−），Ｅ（Ｎ３−）が存在する。なお、Ｎ０＋，Ｎ１＋，Ｎ２＋，Ｎ３＋，Ｎ０−，Ｎ１−，Ｎ２−，Ｎ３−はエンベロープインデックスを示す。
【００３５】
図４に示す振幅エンベロープ波形においては、エンベロープインデックスがＮ０＋のとき、極大値探索によって極大値Ｅ（Ｎ０＋）が検出されるが、しきい値ＴＬよりも低く、従って、アタック位置として判定されない。
また、エンベロープインデックスがＮ１＋のとき、極大値探索によって極大値Ｅ（Ｎ１＋）が検出され、その極大値Ｅ（Ｎ１＋）はしきい値ＴＬよりも大きいので、しきい値を越えた位置より時間的に前に遡って振幅エンベロープの極小値をの位置を探索する。これにより、検出されるインデックスＮ１−はアタック位置として出力される。その後、設定時間Ｔ０ｍａｘの間アタック位置検出が休止されるが、極大値がないので問題はない。
【００３６】
また、エンベロープインデックスがＮ２＋のとき、極大値探索によって極大値Ｅ（Ｎ２＋）が検出され、その極大値Ｅ（Ｎ２＋）はしきい値ＴＬよりも大きいので、しきい値を越えた位置より時間的に前に遡って振幅エンベロープの極小値をの位置を探索する。これにより、検出されるインデックスＮ２−はアタック位置として出力される。その後、設定時間Ｔ０ｍａｘの間アタック位置検出が休止されるので、インデックスがＮ３＋に対応する極大値Ｅ（Ｎ３＋）が存在し、その位置より時間的に前に遡って位置に極小値Ｅ（Ｎ３−）が存在しても、アタック位置として検出されない。
【００３７】
従って、図４に示す振幅エンベロープからアタックとして検出されるのはインデックスＮ１−とＮ２−のみである。
このように、振幅エンベロープが激しく変化し、１つのアタックであるにも拘わらず一定時間内に複数のピークが現れる楽音である場合であっても、一定時間アタック位置検出を休止することで、アタック検出を誤検出することはない。
【００３８】
また、この実施の形態２では、振幅エンベロープの極大値を探索した後、振幅エンベロープを予め設定された振幅しきい値と比較するようにしたので、アタック位置検出の休止時間は、振幅エンベロープの極大値を探索した後の時間に設定すればよく、実施の形態１の場合より短く設定することができる。
【００３９】
実施の形態３．
次に、図５は実施の形態３に係るアタック位置検出装置の構成を示すブロック図である。
図５において、図１に示す実施の形態１と同一部分は同一符号を付してその説明は省略する。新たな符号として、６は重み付け合成ノルム生成手段３とエンベロープ生成手段４との間に設けられて、重み付け合成ノルム生成手段３からの出力信号を一定時間毎に分割した各区間サンプルから一つの代表サンプルだけを得て間引きデータを出力する間引き手段である。
【００４０】
すなわち、図６は間引き手段６の動作を説明する波形図である。
間引き手段６では、図６（ａ）に示す振幅エンベロープｅ（ｎ）に対し、図６（ｂ）に示すように、一定時間毎に分割し、各区間内の最大値を検出し、図６（ｃ）に示すように、間引きされた振幅エンベロープＥ（ｎ）を生成し出力する。
【００４１】
このような間引き手段は、ダウンサンプリング手段により構成することもでき、簡易なデシメーションフィルタを用いて効率よくサンプルの間引きをすることができる。
通常、楽音信号の表現に必要なサンプリング周波数より振幅エンベロープの表現に必要なサンプリング周波数は大きく下回るので、振幅エンベロープを求めたら振幅エンベロープサンプルの間引きする間引き手段を設けることで、演算量を削減することができる。
【００４２】
【発明の効果】
以上のように、この発明によれば、振幅エンベロープを予め設定された振幅しきい値と比較し、または振幅エンベロープの極大値を探索した後、振幅エンベロープを予め設定された振幅しきい値と比較し、振幅エンベロープが振幅しきい値以上であれば、振幅しきい値を越えた位置より時間的に前に遡って振幅エンベロープの極小値の位置を探索しアタック位置として決定するようにしたので、アタック位置を早期にかつ的確に検出することができる。
【００４３】
また、一度アタック位置を検出した後は、所定時間の間アタック位置検出を行わないでアタック位置検出を休止するようにしたので、振幅エンベロープが激しく変化し、１つのアタックであるにも拘わらず一定時間内に複数のピークが現れる楽音である場合のアタック位置の誤検出を防止できる。
【００４４】
また、エンベロープ生成手段の前に、入力される楽音信号をフィルタ処理する異なる通過帯域を有する２つの帯域通過フィルタを設けることで、振幅エンベロープの立ち上がりが緩やかな為にアタック検出の際に悪影響を与える信号が多く含まれる中音域を除去することができる。
【００４５】
また、上記２つのフィルタとエンベロープ生成手段の間に、上記２つのフィルタの出力信号を所定の重み付け合成してノルム演算し正出力を得るノルム生成手段を設け、当該ノルム生成手段を介した楽音信号をエンベロープ生成手段に入力させるようにしたので、高域信号の重みを大きくして低域信号と重み付け合成することで、通常振幅レベルの小さい高域信号のアタック位置検出の精度を上げることができる。
【００４６】
さらに、上記ノルム生成手段と上記エンベロープ生成手段との間に、上記ノルム生成手段の出力信号を一定時間毎に分割した各区間サンプルから一つの代表サンプルだけを得て間引きデータを出力する間引き手段を設けるようにしたので、演算量を削減することができる。
【図面の簡単な説明】
【図１】  この発明の実施の形態１に係る楽音信号のアタック位置検出装置の構成を示すブロック図である。
【図２】  図１のアタック位置検出手段５の動作を説明するためのフローチャートである。
【図３】  この発明の実施の形態１に係るアタック位置検出動作を説明するための波形図である。
【図４】  この発明の実施の形態２に係るアタック位置検出動作を説明するための波形図である。
【図５】  この発明の実施の形態３に係る楽音信号のアタック位置検出装置の構成を示すブロック図である。
【図６】  図５の間引き手段６の動作を説明するための波形図である。
【図７】  最も基本的な従来のアタック位置検出装置の構成を示すブロック図である。
【図８】  実公平５−２６６３９号公報に示されたものと同様な従来のテンポ検出装置を示すブロック図である。
【符号の説明】
１、２  帯域通過フィルタ、３  重み付け合成ノルム生成手段、４  エンベロープ生成手段、５  アタック位置検出手段、６  間引き手段。
【図１】
0003919359.tif 000002
【図２】
0003919359.tif 000003
【図３】
0003919359.tif 000004
【図４】
0003919359.tif 000005
【図５】
0003919359.tif 000006
【図６】
0003919359.tif 000007
【図７】
0003919359.tif 000008
【図８】
0003919359.tif 000009