タイムストレッチ/ピッチシフト

タイムストレッチ とは、オーディオ信号のピッチはそのままで、テンポだけを変更する処理である。ピッチシフト  はその逆で、テンポはそのままで、ピッチだけを変更する処理である。同様な方法で、テンポやピッチを個別もしくは両方同時に時間変化させる事もできる。

これらの処理はたとえば、複数の録音済みクリップをミックスする時に、ピッチやテンポを合わせるのに使用される。でテンポ変更しても悪影響が出にくいが、ピッチのあるトラックでは難しい) またピッチシフト処理は、楽音の音域拡張などのエフェクト処理にも使われる。

1. ピッチシフト
---------

ピッチシフトは音響信号の音高を遷移させる操作である。移調あるいは//周波数スケーリングとも呼ばれる。// 例えば各ノートのピッチを完全五度上に移動し、テンポは同じに保つ事ができる。この移調は「ピッチシフト」と見なす事ができ、ピアノ鍵盤上で各ノートを7キー上に「シフト」したり、メル尺度や線形ピッチ空間上での一定量の加算に相当する。同じ移調を「周波数スケーリング」と見なす事もでき、各音符の周波数を3/2倍に「スケーリング」する事に相当する。

音楽的な移調は音の音色を維持する。

音高以外にも副作用する手法の場合、ノイズ量や音色も変化する。例えばスケーリングした場合フォルマントはChipmunks的効果で歪む。 振幅変調による周波数シフト時には各ノートの周波数に固定の周波数オフセットが加わり音色が歪む。なお「ピッチ・スケーリング」という表現は、音楽的ピッチ空間で各ノートの位置をピッチに応じてスケールする稀な操作を指し、その場合は音楽的な調性が崩れるdate=November 2012}}。

ピッチシフトを実現する手法の例として以下が挙げられる。

ボコーダ: 音高とその他特徴量へ分解、音高のみを操作、再合成
チャンネルボコーダ
LPCボコーダ
Alvin and the Chipmunks: アナログ・レコーディング手法

2. 手法
-----

2.1. リサンプリング
------------

最も簡単にディジタル録音クリップの持続時間とピッチを変更する方法は、リサンプリング処理である。これはサンプルから連続波形を効率的に再構成し、それを別のサンプルレートでサンプリングし直す。そうして得た新しいサンプルを元のサンプルレートで再生すると、音はゆっくり再生されるか、あるいは素早く再生される。ただしサンプル音の周波数は常に速度と同じ比率でスケールされるので、聴覚上のピッチは上下に移動する: 言い換えれば、ゆっくり再生すればピッチが下がり、素早く再生すればピッチが上がり、二つの効果  は分離できない。これはレコードやテープといったアナログ録音の再生速度を速くしたり遅くするのと同様で、Chipmunk効果が得られる。

2.2. フェーズボコーダ
-------------

ピッチに影響を与えずに信号の長さを変える一つの方法がフェーズボコーダである。STFTによる時間周波数表現上で操作をおこなうことで周波数成分を維持したまま信号長を操作できる。またフェーズボコーダ技術は、ピッチシフト/コーラス効果/音色操作/ハーモナイズ効果/その他特殊な変更などの実現に使用でき、これらは全て時間の関数として変化させる事ができる。

2.3. SOLA
---------

PSOLAでは波形の周期をピッチ検出アルゴリズムで検出、区間を抽出、操作し、クロスフェードで再合成する。この手法は 時間領域調波構造伸縮  あるいは 同期波形重畳法  と呼ばれる。倍音構造が複雑な信号の周期を自己相関が誤って推定すると失敗する。このためピッチ検出をアルゴリズムでなく人の耳に頼る場合もある(Adobe Audition CS6は"//Splicing Frequency//"を指定可能]]

タイムストレッチの他の代替手法は、信号のスペクトルモデルに頼っている。この手法では、信号のSTFTを使ってSTFTフレーム中のピーク成分を識別し、隣接フレームのピークをつないで正弦波トラックを生成する。次にこのトラックを、新しい時間スケールで再合成してタイムストレッチを実現}}する。この手法は、特に信号が複数のサブ帯域に分離している時にdate=2013年1月}}多声の素材やパーカッシブな素材の両方で良い結果をもたらす。しかしこの手法は他の手法と比べ、より多くの計算資源を必要とする。

2.4. 位相と時間をほどく
--------------

ピッチシフトとタイムストレッチの別の方法は、旋律楽器などの単音を位相と時間に分離する手法である。date=2013年1月}} この手法で}}時間コントロールだけを変更すれば、オーディオ・サンプルの}}伸長/短縮/時間反転/ループ生成が可能である。時間短縮は圧縮用途にも使える。date=2013年1月}} また位相コントロールだけを変更すれば、既存の音のピッチシフトやFMシンセシス・ディストーションの適用が可能である。これはウェーブテーブル・シンセシスに対し楽器を別のやり方で演奏するのに使用できる。date=2013年1月}}と混同している可能性}})

位相と時間を独立してコントロールするには、全ての位相と時間の組に関する音の変位を把握する必要がある。これは右図に示す円筒に相当する。ただし音響信号は一次元信号に過ぎない。音響信号は円筒上の完全な関数  の観測と見なす事ができる。これは図中に黒い螺旋曲線として描かれている。円筒上の完全な関数は、同じ位相の螺旋上の点間の補間で近似できる。この関数から異なる音響信号を導ける。例えば図中の薄灰色のゆるい螺旋曲線は、元信号と時間発展が同じで周波数がより低い音、または元信号と周波数が同じで時間発展がより速い音、あるいはその中間の音、の経路を示している。最終的に全体プロセスは、類似した位相と類似した時間における値を補間した離散音響信号のために実装できる。

ここに記述された手法は、Melodyneソフトウェアのモノフォニック・バージョンで使用されている。

次の表は各手法の特徴を比較したものである。



3. 応用
-----

3.1. 速聴 
----------------

特定の場合のスピーチについては、タイムストレッチはPSOLAを使って実現できる。

タイムストレッチはオーディオブックや講義録音の再生}}に使える。再生速度を落とす事で外国語の理解度を高める事ができる。

他方、再生速度が上がると理解度が低下すると想像するかもしれないが、Herb Friedmanは次のように語っている:“//実験によれば、脳は話し言葉を通じた耳からの情報速度が「平均的」読解速度の時に最も効率的に働き、その速度はおよそ200〜300 //wpm// であり、他方、話し言葉の平均的速度は100〜150 //wpm// 程度に過ぎない。//”

再生速度を上げた音声の聴取}}は「速読」と等価なものだと見なされている。

タイムストレッチはしばしば、ラジオコマーシャルやテレビコマーシャルのオーディオをCM枠の長さに正確に合わせるために使用される。

4. 関連項目
-------

音響信号処理   
エフェクター
  
ピッチコントロール}}   
ピッチ同期波形重畳法   

5. 参考文献
-------

6. 外部リンク
--------

Stephan Bernsee, “[1]” — 現代のタイム-ピッチ修正技術の包括的概観フェーズボコーダ

Mark Dolson, “[2]” — フェーズボコーダに関するよい解説
Jean Laroche, Mark Dolson, “[3]”
Axel Röbel, “[4]”OverLap-Add系アルゴリズム

池田幹男, “[5]” — MPEG4規格オプションの時間伸長アルゴリズム PICOLA と、それとよく類似した周波数軸圧伸アルゴリズム TDHS ソースコード

[6] — 一部のDJソフトウェアで使われているコード「Elastique」タイムストレッチ
[7] — 人気のあるフリーおよび商用版のタイムストレッチ・ライブラリ「Dirac」ピッチシフト
[8] — 周波数領域でピッチ操作を行うC言語ソースコード
[9] — Javascript ピッチシフター 
[11] — DSPチップ上で動作するギター用リアルタイム・ピッチシフターの理論、数式、図面 および 性能