(57)【特許請求の範囲】
【請求項１】
時間軸圧伸処理すべき音楽信号からアタック位置を検出したのち、過去に検出されたアタック位置の間隔の系列に基づいてビート間隔を決定し、検出されたアタック位置の間隔と前記決定されたビート間隔とに基づいて、アタック位置の検出漏れ補正又は過剰検出補正を行ってビート位置を検出し、この検出されたビート位置の間の音楽信号のうち、前記検出されたビート位置とその近傍とを除いた部分に対して時間軸圧伸処理を施すようにしたことを特徴とする音楽信号の時間軸圧伸方法。
【請求項２】
前記検出されたアタック位置とその１つ前のアタック位置との間隔が前記ビート間隔の整数倍で且つ前記１つ前のアタック位置から前記検出されたアタック位置まで前記ビート間隔ずつ進んだ位置の音楽信号のパワーが所定値を超えている場合には、その位置をビート位置とすることを特徴とする請求項１記載の音楽信号の時間軸圧伸方法。
【請求項３】
前記検出されたアタック位置とその１つ前のアタック位置との間隔が前記ビート間隔の整数分の１倍で且つ前記検出されたアタック位置の音楽信号のパワーが所定値を超えている場合には、その位置をビート位置とし、そうでない場合には誤検出としてビート位置としないことを特徴とする請求項１記載の音楽信号の時間軸圧伸方法。
【請求項４】
前記時間軸圧伸処理された信号の両端を時間軸圧伸処理されない信号と滑らかに結合するようにしたことを特徴とする請求項１〜３のいずれか１項記載の音楽信号の時間軸圧伸方法。
【請求項５】
時間軸圧伸処理すべき音楽信号からアタック位置を検出するアタック位置検出手段と、
このアタック位置検出手段で検出されたアタック位置に基づいてビート位置を検出するビート位置検出手段と、
このビート位置検出手段で検出されたビート位置間の音楽信号のうち、前記検出されたアタック位置とその近傍とを除いた部分についてピッチを変えずに予め指定された圧伸率で時間軸圧伸処理する時間軸圧伸処理手段と
を備え、
前記ビート位置検出手段は、過去に検出されたアタック位置の間隔の系列に基づいてビート間隔を決定し、検出されたアタック位置の間隔と前記決定されたビート間隔とに基づいて、アタック位置の検出漏れ補正又は過剰検出補正を行ってビート位置を検出するものであることを特徴とする音楽信号の時間軸圧伸装置。
【請求項６】
前記ビート位置検出手段は、前記検出されたアタック位置とその１つ前のアタック位置との間隔が前記ビート間隔の整数倍で且つ前記１つ前のアタック位置から前記検出されたアタック位置まで前記ビート間隔ずつ進んだ位置の音楽信号のパワーが所定値を超えている場合には、その位置をビート位置とするものであることを特徴とする請求項５記載の音楽信号の時間軸圧伸装置。
【請求項７】
前記ビート位置検出手段は、前記検出されたアタック位置とその１つ前のアタック位置との間隔が前記ビート間隔の整数分の１倍で且つ前記検出されたアタック位置の音楽信号のパワーが所定値を超えている場合には、その位置をビート位置とし、そうでない場合には誤検出としてビート位置としないことを特徴とする請求項５記載の音楽信号の時間軸圧伸装置。
【請求項８】
前記時間軸圧伸処理手段は、前記時間軸圧伸処理された信号の両端を時間軸圧伸処理されない信号と滑らかに結合するものであることを特徴とする請求項５〜７のいずれか１項記載の音楽信号の時間軸圧伸装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、原ディジタル信号のピッチを変えずに原ディジタル信号を所望とする圧伸率で時間軸圧伸するディジタル信号の時間軸圧伸方法及び装置に関し、特にリズム音源信号を含む音楽信号に対する時間軸圧伸方法及び装置に関する。
【０００２】
【従来の技術】
ディジタル・オーディオ信号のピッチを変えずにその時間軸を圧縮又は伸長する時間軸圧伸技術は、例えば、収録されたディジタルオーディオ信号の全体的な収録時間を所定の時間に合わせ込む、いわゆる「尺合わせ」や、カラオケ装置等のテンポ変換等に利用される。この種の時間軸圧伸技術としては、従来より、カット・アンド・スプライス法（例えば特開平１０−２８２９６３号）やポインター移動量制御による重複加算法（“ポインター移動量制御による重複加算法を用いた音声の時間積での伸長圧縮とその評価”；森田、板倉、昭和61年10月；日本音響学会秋期大会講演論文集1-4-14，PP149）等が知られている。
【０００３】
一般的なカット・アンド・スプライス法による時間軸圧伸処理は、波形とは無相関に波形の切り出しを行い、切り出した波形をつなぎ合わせて指定された圧伸率での圧伸処理を行うもので、切り出し波形同士のつなぎの部分では、波形の不連続が生じるので、クロスフェード処理を行って、フレームのつなぎ部分を滑らかにする。切り出し間隔は、人間の聴感上、エコー感や音のダブリ感が検知されにくい間隔、例えば６０msec程度に設定される。特に、特開平１０−２８２９６３号の方式では、音声タイミング情報に同期して切り出しの長さを決める。通常の方式に比べ、元波形のリズムと同じ周期でつなぎ目が現れ、つなぎ目の部分の音質変化が目立ちにくいという特徴がある。
【０００４】
一方、ポインター移動量制御による重複加算法では、原オーディオ信号において、波形相関の高い隣接した同じ長さの２つの区間を抽出し、これら区間の信号を重複加算し、この重複加算された信号を元の２つの区間と入れ換えたり、元の２つの区間の間に挿入することで、全体的な時間を短くしたり長くする。この方式は、カット・アンド・スプライト法よりもスムーズな波形接続が可能となる。特に音声信号や単音楽器のようなピッチ性の高い音源に対し、より品質の高い時間軸圧伸が可能となる。
【０００５】
【発明が解決しようとする課題】
従来の一般的なカット・アンド・スプライス法では、どのような信号を対象としても、それなりの音質が期待できるというメリットはあるものの、特にリズム音源を対象とした場合には、二度打ちやリズムの狂いといった非常に目立つ音質劣化を発生させやすい。特開平１０−２８２９６３号の方式では、元波形のリズムに同期したカット・アンド・スプライスとなっているが、特に伸長の場合、波形を切り出す際に二つのアタックが切り出し波形に含まれることがあり、この場合二度打ちが発生する。更に、ポインタ移動量制御による重複加算法では、波形の時間相関を見ながら時間軸圧伸を行うため、二度打ち現象は原理的には起きないと考えられる。しかし、時間軸圧伸後のアタックの位置については全く補償されておらず、この結果、リズムのずれが発生し易い。また、特開平１１−１６１２７２号公報には、テンポに同期した周期で不連続変化点を設定して時間軸圧伸する技術が開示されているが、この技術では、予め入力信号のテンポを知っておく必要がある。
【０００６】
この発明は、このような問題点に鑑みなされたもので、リズム音源のようなパルシブな音楽信号に対し時間軸圧伸処理を施す際に、時間軸圧伸後のビート位置を補償して、リズムの狂いや二度打ちを発生させることがない音楽信号の時間軸圧伸方法及び装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
この発明に係る音楽信号の時間軸圧伸方法は、時間軸圧伸処理すべき音楽信号からアタック位置を検出したのち、過去に検出されたアタック位置の間隔の系列に基づいてビート間隔を決定し、検出されたアタック位置の間隔と前記決定されたビート間隔とに基づいて、アタック位置の検出漏れ補正又は過剰検出補正を行ってビート位置を検出し、この検出されたビート位置の間の音楽信号のうち、前記検出されたビート位置とその近傍とを除いた部分に対して時間軸圧伸処理を施すようにしたことを特徴とする。
【０００８】
また、この発明に係る音楽信号の時間軸圧伸装置は、時間軸圧伸処理すべき音楽信号からアタック位置を検出するアタック位置検出手段と、このアタック位置検出手段で検出されたアタック位置に基づいてビート位置を検出するビート位置検出手段と、このビート位置検出手段で検出されたビート位置間の音楽信号のうち、前記検出されたアタック位置とその近傍とを除いた部分についてピッチを変えずに予め指定された圧伸率で時間軸圧伸処理する時間軸圧伸処理手段とを備え、前記ビート位置検出手段は、過去に検出されたアタック位置の間隔の系列に基づいてビート間隔を決定し、検出されたアタック位置の間隔と前記決定されたビート間隔とに基づいて、アタック位置の検出漏れ補正又は過剰検出補正を行ってビート位置を検出するものであることを特徴とする。
【０００９】
この発明によれば、音楽信号のアタック位置を検出したのち、ビート位置を検出してアタックの検出漏れや過剰検出を補正し、検出されたビート位置間で時間軸圧伸処理を施すようにしているので、二度打ちが発生することはなく、ビート位置の間隔も圧伸率に応じて圧縮又は伸長されることになり、これにより圧伸処理前後のビート位置の相対関係は完全に維持されるので、リズムの狂いが発生するようなこともない。
【００１０】
なお、ビート位置の検出は、例えば過去に検出されたアタック位置の間隔の系列に基づいてビート間隔を決定し、検出されたアタック位置の間隔と前記決定されたビート間隔とに基づいて決定することができる。より具体的には、例えば検出されたアタック位置とその１つ前のアタック位置との間隔がビート間隔の整数倍で且つ前記１つ前のアタック位置から前記検出されたアタック位置までビート間隔ずつ進んだ位置の音楽信号のパワーが所定値を超えている場合には、その位置をビート位置とする。また、例えば検出されたアタック位置とその１つ前のアタック位置との間隔がビート間隔の整数分の１倍で且つ検出されたアタック位置の音楽信号のパワーが所定値を超えている場合には、その位置をビート位置とし、そうでない場合には誤検出としてビート位置としない。
【００１１】
また、音楽信号のうち、検出されたアタック位置とその近傍とを除いた部分について時間軸圧伸処理を行い、この時間軸圧伸処理された信号の両端を時間軸圧伸処理されない信号と滑らかに結合するようにする。滑らかに結合させるには、時間軸圧伸処理の際に、両端部での処理波形が元の信号波形とほぼ似通うようにしたり、或いはクロスフェード処理で結合させる。この場合、ビート位置の部分の波形はそのまま維持されるので、本来の音に近い音が得られる。
【００１２】
【発明の実施の形態】
以下、図面を参照して、この発明の好ましい実施の形態について説明する。
図１は、この発明の一実施例に係る音楽信号の時間軸圧伸装置の構成を示すブロック図である。
時間軸圧伸すべきリズム音源信号であるディジタル・オーディオ信号ｘ（ｔ）は、アタック位置検出部１に入力されている。即ち、リズム音源信号には、“アタック”が存在し、波形レベルでは信号電力の急激な集中と変化となっている。アタック位置検出部１では、あるしきい値によって単位時間当たりの信号電力の評価を行うと共に、この信号電力の時間微分によって、波形の急激な変化点を検出する。この２つを組み合わせることにより、音楽信号内のほぼ全てのアタックの検出が可能である。そして、この検出結果は、アタック位置情報として出力される。また、アタック位置検出部１では、各アタック位置におけるパワーの平均値Ｐatkも求めてこれを出力する。
【００１３】
ここで、アタック位置検出部１で検出されたアタック位置は、必ずしも音楽信号のビート（拍）位置を正確に示しているとは限らない。何故なら、アタック位置検出部１で検出されたアタック位置は、信号電力の急激な集中と変化の位置を示すので、例えば弱拍の場合や、たまたま当該位置がビート性の弱い楽器パートでビートを示している場合等のように、信号電力が緩やかな集中と変化を示すようなビート位置を検出漏れしてしまったり、本来ビートではない位置がたまたま信号電力の急激な集中と変化とを示しているために、過剰に検出されるおそれなどがあるからである。そこで、入力オーディオ信号は、ビート位置検出部２にも供給されている。ビート位置検出部２では、アタック位置情報及びパワーの平均値Patk等からアタックの検出漏れ、過剰検出等を補正し、予想される正しいビート位置を求めてこれを出力する。更に、入力オーディオ信号は、時間軸圧伸処理部３にも供給されている。時間軸圧伸処理部３は、入力されたオーディオ信号のうち、ビート位置検出部２で検出されたビート位置間の信号について時間軸圧伸処理を施す。
【００１４】
図２は、時間軸圧伸処理部３の構成を示すブロック図である。
入力オーディオ信号は、遅延バッファ１１に順次格納される。遅延バッファ１１は、波形の時間軸伸長処理およびピッチ抽出処理等に必要なデータ量が格納されるリングバッファである。遅延バッファ１１に格納されたオーディオ信号は、隣接波形読出位置制御部１２の制御に基づき種々の区間長で切り出され、隣接波形のデータとして順次読み出される。類似度計算部１３は、隣接波形読出制御部１２の制御のもとで読み出された隣接波形のデータの類似度を計算する。制御部１４は、求められた類似度から隣接波形が最も類似する区間長を求め、これを基本周期（ピッチ）Ｌｐとして波形読出制御部１５に与える。波形読出制御部１５は、制御部１４に与えられた前記ビート位置情報に基づき、ビート位置間の信号について、与えられた基本周期Ｌｐだけ離れた２つのデータを遅延バッファ１１から読み出す。遅延バッファ１１から読み出された２つのデータＤ１，Ｄ２は、波形窓掛け・加算部１６，圧伸率制御部１７及び出力バッファ１８からなる圧伸処理制御手段に供給される。波形窓掛け・加算部１６に供給されたデータＤ１，Ｄ２は、ここで所定の時間窓関数を乗算されて加算される。また、一方のデータＤ２は、圧伸率制御部１７にも供給されている。圧伸率制御部１７は、制御部１４から与えられる圧伸処理の対象長さＬの情報に基づいて原オーディオデータから波形を切り出す。圧伸処理の対象長さＬは、予め設定された圧伸率Ｒと、抽出された基本周期Ｌｐとに基づき制御部１４で算出される。そして、波形窓掛け・加算部１６で加算された波形と、圧伸率制御部１７で切り出された原波形とが出力バッファ１８において合成されて時間軸圧伸された出力信号が生成される。
【００１５】
次に、このように構成されたこの実施例の装置の動作を説明する。
図３は、アタック検出部１におけるアタック検出処理を説明するための図である。
アタックの位置は、信号電力とその時間微分値より求めることができる。信号電力の計算は、図３に示すように、予め定めた信号電力計算時間Ｔ１の信号について、予め定めた信号電力評価更新時間長Ｔ２で順次更新しながら行う。入力信号をx(t)とし、期間Ｔ１の入力信号x(t)から信号電力Powを下記数１により求める。
【００１６】
【数１】
Pow＝sqrt[Σx(t)]
【００１７】
求められた信号電力Powに対して、その時間微分Spwを数２のように求める。
【００１８】
【数２】
Spw＝dPow/dt
【００１９】
この時間微分Spwが所定のしきい値を超えるかどうかを評価してアタック位置Ａiを検出する。
【００２０】
次に、ビート位置検出部２におけるビート位置検出処理について説明する。
図４は、ビート位置検出部２におけるビート位置検出処理を示すフローチャートである。
まず、アタック位置検出部１で検出されたアタック位置情報Ａiを入力する（Ｓ１）。次に、このアタック位置Ａiと、前回検出したアタック位置Ａi-1との間隔ΔＡ[i]を求める（Ｓ２）。次に、過去のアタック間隔の系列ΔＡ[0]，ΔＡ[1]，…，ΔＡ[i]から適切なビート間隔ΔＢを決定する（Ｓ３）。ΔＢの決定方法としては、例えば過去のアタック間隔の系列ΔＡ[0]，ΔＡ[1]，…，ΔＡ[i]のうち、統計的に最多頻度となる値をΔＢとする方法等を用いることができる。続いてアタック間隔ΔＡ[i]とビート間隔ΔＢとを比較する（Ｓ４）。この大小関係によって検出漏れ補正又は過剰検出補正が行われる。
【００２１】
（１）検出漏れ補正
ΔＡ[i]がΔＢ以上の場合（Ｓ４がＹｅｓの場合）、ΔＡ[i]がΔＢのｎ倍（但しｎは整数）の近傍であるかどうかを判定し（Ｓ５）、もしそうであれば検出漏れがあったと判断する。この場合、Ａi-1からＡiまでΔＢずつ進んだ位置、それぞれがビート位置である可能性があるとするが（Ｓ６，Ｓ７，Ｓ８，Ｓ９）、むやみにビート位置の数を増加させないようにそれぞれの位置でパワーの評価を行う（Ｓ１０）。パワーのしきい値Ｐthは、固定的に定めても良いし、その時点での信号から適応的に求めても良い。もし、パワーがしきい値Ｐthを超えていれば（Ｓ１０）、その位置をビート位置とし（Ｓ９）、そうでなければビート位置の候補から除外する。なお、ここではドラム以外の比較的パワーの立上りが急峻でない楽音によるビートの提示を考慮して、パワーの立上りは評価せず、パワーの大きさのみを評価する。即ち、アタック位置検出部１においてその位置がアタックとして検出されなかったのは、パワーの立上りが急峻でなかったことによると仮定している。もし、ΔＡ[i]がΔＢの整数倍近傍の値でなければ、Ａiは誤検出であったと判断し、次のアタックＡi+1を入力して（Ｓ１）同様の処理を繰り返す。
【００２２】
（２）過剰検出補正
一方、図４のステップＳ４で、ΔＡ[i]がΔＢよりも小さいと判定された場合、アタック間隔ΔＡ[i]がΔＢの１／ｎの近傍の値であるかどうかを判定する（Ｓ１１）もし、そうであれば更にアタック位置Ａiにおけるパワーが過去のアタック位置におけるパワーの平均値Ｐatkよりも大きいかどうかを判定する（Ｓ１２）。これは検出されたアタックの中でもより重要なものであるかどうかを見ている。この二つの条件を共に満たしていれば、Ａiはビート位置であると判断する（Ｓ１３，Ｓ１４）。この条件を一つでも満たしていなければ、Ａiは誤検出であったと判断し、次のアタック位置Ａi+1を入力する（Ｓ１）。
【００２３】
図５は、上述したビート位置検出処理によってアタック位置からビート位置を再配置する例を示す図である。
例えば、図５（ａ）に示すように、検出されたアタック間隔ΔＡ[i]＝１５であるとし、同図（ｂ）に示すように、ビート間隔がそれまでの処理によってΔＢ＝５と決定されていたとすると、ΔＡ[i]≧ΔＢで、且つΔＡ[i]＝３・ΔＢであるから、Ａi-1＋ΔＢ（＝Ｂi1），Ａi-1＋２・ΔＢ（＝Ｂi2）の位置が検出漏れのあったビート位置候補と考える。このとき、図５（ｂ）（１）のように、それぞれのビート候補位置Ａi-1＋ΔＢ，Ａi-1＋２・ΔＢでのパワーＰ（Ａi-1＋ΔＢ），Ｐ（Ａi-1＋２・ΔＢ）が全てパワーのしきい値Ｐthを超えている場合、これらは共にビート位置として確定する。従って、得られるビート位置の系列はＢi-1（＝Ａi-1），Ｂi1，Ｂi2，Ｂi（＝Ａi）となる。また、図５（ｂ）（２）では、ビート候補位置Ｂi1のパワーだけがしきい値Ｐthを超えており、ビート候補位置Ｂi2のパワーはしきい値Ｐthを下回っている。この場合には、ビート位置の系列はＢi-1（＝Ａi-1），Ｂi1，Ｂi（＝Ａi）となる。更に、図５（ｂ）（３）では、ビート候補位置Ｂi1，Ｂi2のパワーがいずれもしきい値Ｐthを下回っているので、この場合には、ビート位置の系列は、Ｂi-1（＝Ａi-1），Ｂi（＝Ａi）となる。
【００２４】
一方、図５（ｃ）のように、ビート間隔ΔＢ＝３０であるとすると、ΔＡ
[i]＜ΔＢで、且つΔＡ[i]＝（１／２）・ΔＢであるから、ΔＡiはビート候補位置である。ここで同図（ｃ）（１）のように、アタック位置ＡiでのパワーＰ（Ａi）がしきい値Ｐatkを超えている場合、これは重要なアタック位置、すなわちビート位置であると判断される。この場合に得られるビート位置の系列はＢi-1（＝Ａi-1），Ｂi（＝Ａi）となる。逆に同図（ｃ）（２）に示すように、ＡiでのパワーＰ（Ａi）がパワーＰatkを下回るときには、Ａiはそれほど重要なアタック要素ではないとみなされて、ビート候補から外れ、却下される。
【００２５】
また、図５（ｄ）のように、ビート間隔ΔＢ＝１２又はΔＢ＝１８等に決定されているとすると、ΔＢの整数倍及び整数分の１は、いずれもΔＡ[i]の近傍の値とはならないので、新たにビート位置が挿入されることもなく、アタック位置Ａiは却下される。
【００２６】
以上を繰り返して得られたＢの系列が正しく補正されたビート位置となる。
図６は、音楽信号に対してアタック位置検出のみを行った場合の検出位置と、ビート位置検出処理を追加した場合の検出位置とを比較した図である。図６（ａ）では、アタック位置検出のみでは検出できなかったビートをビート位置検出を行うことによって検出できる例を示している。これにより、アタック検出のみでは二度打ち／抜けが発生していた箇所が保持されたまま処理することができる。また、図６（ｂ）では、アタック検出のみの場合には、ビート成分以外の部分でもアタック位置を検出してしまうのを、ビート位置検出を併用することで、そのような過剰検出を抑制することができることを示している。これにより、圧伸処理の増加による音質劣化や計算量の増加を抑えることができる。
【００２７】
次に、このように検出されたビート位置間の時間軸圧伸処理部３における圧伸方式について説明する。時間軸圧伸方式としては、カット・アンド・スプライス法、ポインタ移動量制御による重複加算法、リバーブ、ディザ、ループの繰り返し等、種々の方法を適用することができるが、ここでは、一例としてポインタ移動量制御による重複加算法による圧伸方式について説明する。
【００２８】
図７及び図８は、この時間軸圧伸手法を説明するための図であり、図７は圧縮処理、図８は伸長処理をそれぞれ示している。まず、同図（ａ）に示すように、原オーディオデータの時間軸方向の隣接波形区間の類似性判定処理を行って基本周期Ｌｐを抽出する。具体的には、区間長の初期値を最小値Ｌminに設定して隣接する区間長Ｌminの波形の類似度を判定する。これを区間長が最大値Ｌmaxとなるまで繰り返し、最も類似していると判定された区間長を、同図（ｂ）のように基本周期Ｌｐと決定する。次に、決定された基本周期Ｌｐの隣接する２つの波形に、同図（ｃ）に示すような窓関数を掛けて、これらを同図（ｄ），（ｅ），（ｆ）に示すように重ね合わせる。図７（ｆ）のように、重ね合わせた波形を２つの基本周期の波形と置き換えれば時間軸圧縮となり、図８（ｆ）のように、重ね合わせた波形を２つの基本周期の波形の間に挿入すれば時間軸伸長となる。
【００２９】
図９は、この時間軸圧伸処理の手順を示すフローチャートである。
入力信号x(t)は、必要な量がまず遅延バッファ１１に格納される（Ｓ２１）。このバッファ１１は、最低でも２×Ｌmaxサンプルの容量が必要である。次に、類似性判定のための区間長Ｌｐの初期値として最小値Ｌminが与えられ、類似度Ｓとして最大値Ｓmaxが与えられる（Ｓ２２）。そして類似度Ｓが計算されると共に（Ｓ２３）、区間長Ｌｐを１つずつ増やして（Ｓ２４）、Ｌｐが最大値Ｌmaxに達するまで、類似度Ｓを計算して（Ｓ２５，Ｓ２３）、最も類似性の高かった区間長Ｌｐを求める（Ｓ２３）。ここで図７及び図８を参照して明らかなように、類似性判定は、現在点Ｔ0からＴ0＋Ｌｐ−１間での区間の波形Wave Aと、Ｔ0＋ＬｐからＴ0＋２Ｌｐまでの区間の波形Wave Bとの類似度演算となる。いま、これら区間の対応する各時間軸方向の位置をｔx，ｔx＋Ｌｐとすると、類似度Ｓは、下記数３のように二乗誤差によって求めることができる。
【００３０】
【数３】
0004581190.tif 000002
+
【００３１】
この場合、類似度Ｓが小さいほど類似性が高いことを示すことになる。勿論、これは一例であって、このような二乗誤差の他に、誤差の絶対値和や自己相関関数を用いることもできる。
【００３２】
ここで、例えば図１０に示すように、ビート位置間の区間の前端部分（ビート位置）及び後端部分（次のビート位置の直前の区間）の信号は、そのままとし、その中間部分の信号を時間軸圧伸処理する。時間軸圧伸処理は、その両端において、時間軸圧伸されない信号と滑らかに結合されるように行う。最も目立つビートの部分の波形は、そのまま維持されるので、本来の音に近い音が得られる。
【００３３】
ところで、このようにビート位置を基本とする時間軸圧伸処理では、処理はビート位置間で完結し、その前後の信号は一切用いないことが重要である。しかも、前述のように、時間軸圧伸処理された信号と時間軸圧伸処理されない信号とを滑らかに接続しなければならない。この場合、時間軸圧伸処理をポインタ移動量制御による重複加算法によって行うと、必ず処理しきれない部分が発生する。特に時間軸圧伸率が１００％に近い部分では、この部分が非常に長くなる。
【００３４】
図１１は、時間軸伸長時に処理しきれなかった部分をビート位置間の後端部分からクロスフェードに必要な分のデータを取り出し、一部をクロスフェードして時間的な辻褄を合わせる処理を示している。図１２は、時間軸伸長におけるクロスフェード時に、データが足りない場合に、一部のデータを繰り返して伸長を行っている様子を示している。これはポインタ移動量が大きすぎて全く処理できない場合等に有効である。
【００３５】
図１３は、時間軸圧縮時の様子を示したもので、伸長時と同様に、処理しきれなかった部分をクロスフェードで時間軸圧縮している。圧縮時にはデータが不足することはあり得ないので、全てビート位置間の後端部分から必要なデータを取り出し、クロスフェードすればよい。
【００３６】
以上の処理では、モノチャネルのみの処理について説明したが、処理すべき音楽信号がステレオ信号である場合には、Ｌ，Ｒのそれぞれのチャネルの信号に対して独立に処理を行うと、ステレオ再生した場合に、定位感が広がってしまうことがある。これは、上述した時間軸圧伸を行った際、左右チャネル間でクロスフェードポイントがずれることにより、位相が変化してしまうため定位感が大きく損なわれるものと推測される。そこで、例えば図１４に示すように、加算器２１によってＬ＋Ｒの和信号を得、この和信号に対してアタック位置検出部２２にてアタック位置の検出を行う。その後、和信号から得られたアタック位置をもとに、ビート位置検出部２３でビートの再配置を行う。更に、時間軸圧伸の際、圧伸処理を行う位置を決定する圧伸位置評価部２４の評価関数にも左右の和信号を用いた上で、各チャネルを個別に処理する圧伸制御部２５，２６を設けるようにすれば、ビート位置および圧伸処理が左右同じになり、入力信号と同じ定位を保ったまま出力できる。
【００３７】
なお、以上の実施例では、ビートがドラム等のパルシブな楽器によって生成されていると仮定した場合の処理例を示した。しかし、ビート検出の手法は、上述したものに限定されるものではなく、例えば次のような手法にて求めるようにしても良い。
即ち、まず入力オーディオ信号に対して周波数解析を行い、各周波数毎の発音時刻を求め、各周波数毎の発音時刻をベクトル化する。次に、過去に得られた発音時刻ベクトルからビート間隔を求め、次のビート時刻の予測とビートタイプの判定を行う。その際、コード変化情報を使用して音楽的に判定する。コード変化情報は、例えば四分音符レベルでのコード変化度と、八分音符レベルでのコード変化度とからなる。前者は、各四分音符の位置でコードがどれぐらい変化した可能性があるか、後者は八分音符の位置でコードがどれぐらい変化した可能性があるかを示す。得られるビート情報は、ビート時刻、ビートタイプ及び現在のテンポからなる。これらの情報を用いて時間軸圧伸処理を行うようにしても良い。この場合には、ビートがパルシブな楽器によって生成されたものでなくても、ビートの位置を正しく検出することができる。
【００３８】
【発明の効果】
以上述べたように、この発明によれば、音楽信号のアタック位置を検出したのち、ビート位置を検出してアタックの検出漏れや過剰検出を補正し、検出されたビート位置間で時間軸圧伸処理を施すようにしているので、二度打ちが発生することはなく、ビート位置の間隔も圧伸率に応じて圧縮又は伸長されることになり、これにより圧伸処理前後のビート位置の相対関係は完全に維持されるので、リズムの狂いが発生するようなこともないという効果を奏する。
【図面の簡単な説明】
【図１】この発明の一実施例に係る音楽信号の時間軸圧伸装置のブロック図である。
【図２】同装置における時間軸圧伸処理部の構成を示すブロック図である。
【図３】同装置におけるアタック位置検出部の処理を説明するための図である。
【図４】同装置におけるビート位置検出部の処理を示すフローチャートである。
【図５】同装置におけるビート位置検出処理を説明するための図である。
【図６】同装置におけるビート位置検出による検出補正例を示す図である。
【図７】同処理における時間軸圧縮処理を示す波形図である。
【図８】同装置における時間軸伸長処理を示す波形図である。
【図９】同装置における時間軸圧伸処理のフローチャートである。
【図１０】この発明における他の実施例に係る時間軸伸長処理前後の信号を示す波形図である。
【図１１】同処理におけるクロスフェード処理を説明するための図である。
【図１２】同処理におけるクロスフェード処理を説明するための図である。
【図１３】同処理におけるクロスフェード処理を説明するための図である。
【図１４】この発明の更に他の実施例に係る時間軸圧伸装置のブロック図である。
【符号の説明】
１，２２…アタック位置検出部、２，２３…ビート位置検出部、３，２５，２６…時間軸圧伸処理部、１１…遅延バッファ、１２…隣接波形読出部、１３…類似度演算部、１４…制御部、１５…波形読出制御部、１６…波形窓掛け・加算部、１７…圧伸率制御部、１８…出力バッファ、２４…圧伸位置評価部。
【図１】
0004581190.tif 000003
【図３】
0004581190.tif 000004
【図２】
0004581190.tif 000005
【図４】
0004581190.tif 000006
【図５】
0004581190.tif 000007
【図６】
0004581190.tif 000008
【図７】
0004581190.tif 000009
【図８】
0004581190.tif 000010
【図９】
0004581190.tif 000011
【図１０】
0004581190.tif 000012
【図１１】
0004581190.tif 000013
【図１２】
0004581190.tif 000014
【図１３】
0004581190.tif 000015
【図１４】
0004581190.tif 000016