この項目では、 オーディオ信号の時間伸縮 および ピッチ変更 について説明しています。他の用法については「en:Time stretching (disambiguation)
」をご覧ください。タイムストレッチ とは、オーディオ信号のピッチはそのままで、テンポ(持続時間)だけを変更する処理である。 ピッチシフト (またはピッチスケーリング) はその逆で、テンポ(持続時間)はそのままで、ピッチだけを変更する処理である。同様な方法で、テンポやピッチを個別もしくは両方同時に時間変化させる事もできる。
これらの処理はたとえば、(再演奏や再収録が不可能な)複数の録音済みクリップをミックスする時に、ピッチやテンポを合わせるのに使用される。(ピッチ感の薄いドラム・トラックは、適当にリサンプリング処理(訳注: あるいはBeat slicing)でテンポ変更しても悪影響が出にくいが、ピッチのあるトラックでは難しい) またピッチシフト処理は、楽音の音域拡張(たとえばギター音を1オクターブ下で出す)などのエフェクト処理にも使われる。
目次
1 実装方法
1.1 リサンプリング
1.2 フェーズボコーダ
1.3 SOLA
1.4 Sinusoidal spectral modeling
1.5 位相と時間をほどく
2 ピッチシフト
3 応用
3.1 速聴 (高速音声再生)
4 関連項目
5 参考文献
6 外部リンク
最も簡単にディジタル録音クリップの持続時間とピッチを変更する方法は、リサンプリング処理である。これはサンプルから(訳注: 推測に基づく補間で)連続波形を効率的に再構成し、それを別のサンプルレートでサンプリングし直す数学的処理である。そうして得た新しいサンプルを元のサンプルレートで再生すると、音はゆっくり再生されるか、あるいは素早く再生される。ただしサンプル音の周波数は常に速度と同じ比率でスケールされるので、聴覚上のピッチは上下に移動する: 言い換えれば、ゆっくり再生すればピッチが下がり、素早く再生すればピッチが上がり、二つの効果 (速度 と ピッチ) は分離できない。これはレコードやテープといったアナログ録音の再生速度を速くしたり遅くするのと同様で、Chipmunk効果が得られる。
フェーズボコーダ詳細は「フェーズボコーダ」を参照
ピッチに影響を与えずに信号の長さを変える一つの方法は、Flanagan & Golden 1966, Portnoff 1976 らに従ってフェーズボコーダを組み立てる事である。[1][2]
基本ステップ:
分析: STFTを使って信号の瞬時周波数と瞬時振幅の組を計算する: STFTとは、短くて互いにオーバーラップした、スムーズな窓関数適用でブロック化した信号サンプルを、離散フーリエ変換 (DFT) したものである。
変更: STFTの位相や振幅になんらかの処理を適用 (たとえばFFTブロックのリサンプリング[要説明]);
合成: 逆STFTの実行: 各FFTブロックを逆フーリエ変換 (IFT) し、得られた短いサンプル波形を足し合わせる。波形重畳法 (OLA)とも呼ばれる。[3]
フェーズボコーダは正弦波成分をうまく扱うことができるが、初期実装系では非整数比の時間スケール伸縮で トランジェント ("beat") 波形にかなりの不鮮明さ(smearing)が生じ、これが位相のずれた散漫な結果(the results phasey and diffuse)をもたらす。