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