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

  タイムストレッチ とは、オーディオ信号のピッチはそのままで、テンポ(持続時間)だけを変更する処理である。 ピッチシフト (またはピッチスケーリング) はその逆で、テンポ(持続時間)はそのままで、ピッチだけを変更する処理である。同様な方法で、テンポやピッチを個別もしくは両方同時に時間変化させる事もできる。 これらの処理はたとえば、(再演奏や再収録が不可能な)複数の録音済みクリップをミックスする時に、ピッチやテンポを合わせるのに使用される。(ピッチ感の薄いドラム・トラックは、適当にリサンプリング処理(訳注: あるいはBeat slicing)でテンポ変更しても悪影響が出にくいが、ピッチのあるトラックでは難しい) またピッチシフト処理は、楽音の音域拡張(たとえばギター音を1オクターブ下で出す)などのエフェクト処理にも使われる。 ピッチシフト（英: pitch shifting）は音響信号の音高を遷移させる操作である。移調（トランスポーズ）あるいは周波数スケーリングとも呼ばれる。 例えば各ノートのピッチを完全五度上に移動し、テンポは同じに保つ事ができる。この移調は「ピッチシフト」と見なす事ができ、ピアノ鍵盤上で各ノートを7キー上に「シフト」したり、メル尺度や線形ピッチ空間上での一定量の加算に相当する。同じ移調を「周波数スケーリング」と見なす事もでき、各音符の周波数を3/2倍に「スケーリング」(乗算)する事に相当する。 音楽的な移調は音の音色（倍音や和音の周波数比）を維持する。 音高以外にも副作用する手法の場合、ノイズ量や音色も変化する。例えばスケーリングした場合フォルマントはChipmunks的効果で歪む。 振幅変調による周波数シフト時には各ノートの周波数に固定の周波数オフセットが加わり音色が歪む。なお「ピッチ・スケーリング」という表現は、音楽的ピッチ空間で各ノートの位置をピッチに応じてスケールする（例: 線形ピッチ空間上で、最も高いノートを低いノートよりも広い間隔にシフトする）稀な操作を指し、その場合は音楽的な調性が崩れる[要出典]。 ピッチシフトを実現する手法の例として以下が挙げられる。 ボコーダ: 音高とその他特徴量（例: スペクトル包絡）へ分解、音高のみを操作、再合成 ピッチ検出アルゴリズム（英語版） チャンネルボコーダ LPCボコーダ Alvin and the Chipmunks: アナログ・レコーディング手法 最も簡単にディジタル録音クリップの持続時間とピッチを変更する方法は、リサンプリング処理である。これはサンプルから(訳注: 推測に基づく補間で)連続波形を効率的に再構成し、それを別のサンプルレートでサンプリングし直す。そうして得た新しいサンプルを元のサンプルレートで再生すると、音はゆっくり再生されるか、あるいは素早く再生される。ただしサンプル音の周波数は常に速度と同じ比率でスケールされるので、聴覚上のピッチは上下に移動する: 言い換えれば、ゆっくり再生すればピッチが下がり、素早く再生すればピッチが上がり、二つの効果 (速度 と ピッチ) は分離できない。これはレコードやテープといったアナログ録音の再生速度を速くしたり遅くするのと同様で、Chipmunk効果が得られる。 ピッチに影響を与えずに信号の長さを変える一つの方法がフェーズボコーダである。STFTによる時間周波数表現上で操作をおこなうことで周波数成分を維持したまま信号長を操作できる。またフェーズボコーダ技術は、ピッチシフト/コーラス効果/音色操作/ハーモナイズ効果/その他特殊な変更などの実現に使用でき、これらは全て時間の関数として変化させる事ができる。[要説明] PSOLAでは波形の周期をピッチ検出アルゴリズム（英語版）で検出、区間を抽出、操作し、クロスフェードで再合成する。この手法は 時間領域調波構造伸縮 (TDHS: Time-Domain Harmonic Scaling) あるいは 同期波形重畳法 (SOLA: Synchronized OverLap-Add method) と呼ばれる。倍音構造が複雑な信号(管弦楽曲など)の周期を自己相関が誤って推定すると失敗する。このためピッチ検出をアルゴリズムでなく人の耳に頼る場合もある（例: Adobe Audition / 以前のCool Edit Pro）(訳注: Adobe Audition CS6は"Splicing Frequency"を指定可能)。 タイムストレッチの他の代替手法は、信号のスペクトルモデルに頼っている。この手法では、信号のSTFTを使ってSTFTフレーム中のピーク成分を識別し、隣接フレームのピークをつないで正弦波トラック("tracks"訳注: ≒周波数の軌跡)を生成する。次にこのトラックを、新しい時間スケールで再合成訳注: してタイムストレッチを実現する。この手法は、特に信号が複数のサブ帯域に分離している時に[要説明]多声の素材やパーカッシブな素材の両方で良い結果をもたらす。しかしこの手法は他の手法と比べ、より多くの計算資源を必要とする。[要出典] ピッチシフトとタイムストレッチの別の方法は、旋律楽器などの単音を位相と時間に分離する手法である。[要検証 – ノート] 訳注: この手法で時間コントロールだけを変更すれば、訳注: オーディオ・サンプルの伸長/短縮/時間反転/ループ生成(サンプラー用)が可能である。時間短縮は圧縮用途にも使える。[要説明] また位相コントロールだけを変更すれば、既存の音のピッチシフトやFMシンセシス・ディストーションの適用が可能である。これはウェーブテーブル・シンセシスに対し楽器を別のやり方で演奏するのに使用できる。(play instruments alternatively to wavetable synthesis)[要説明](訳注: ウェーブテーブル音源(PCM音源)と混同している可能性) 位相と時間を独立してコントロールするには、全ての位相と時間の組に関する音の変位を把握する必要がある。これは右図に示す円筒に相当する。ただし音響信号は一次元信号に過ぎない。音響信号は円筒上の完全な関数 (full function) の観測と見なす事ができる。これは図中に黒い螺旋曲線として描かれている。円筒上の完全な関数は、(おおよそ)同じ位相の螺旋上の点間の補間で近似できる。この関数から異なる音響信号を導ける。例えば図中の薄灰色のゆるい螺旋曲線は、元信号と時間発展が同じで周波数がより低い音、または元信号と周波数が同じで時間発展がより速い音、あるいはその中間の音、の経路(path)を示している。最終的に全体プロセスは、類似した位相と類似した時間における値を補間した離散音響信号のために実装できる。 ここに記述された手法は、Melodyneソフトウェアのモノフォニック・バージョンで使用されている。 次の表は各手法の特徴を比較したものである。 特定の場合のスピーチについては、タイムストレッチはPSOLAを使って実現できる。[要説明] タイムストレッチはオーディオブックや講義録音訳注: の再生に使える。再生速度を落とす事で外国語の理解度を高める事ができる。 他方、再生速度が上がると理解度が低下すると想像するかもしれないが、Herb Friedmanは次のように語っている:“実験によれば、脳は話し言葉を通じた耳からの情報速度が「平均的」読解速度の時に最も効率的に働き、その速度はおよそ200〜300 wpm (wpm:一分あたりの単語数)であり、他方、話し言葉の平均的速度は100〜150 wpm 程度に過ぎない。” 再生速度を上げた音声訳注: の聴取(速聴)は「速読」と等価なものだと見なされている。 タイムストレッチはしばしば、ラジオコマーシャルやテレビコマーシャルのオーディオをCM枠の長さ(例えば30秒あるいは60秒)に正確に合わせる(尺合わせ)ために使用される。 音響信号処理   (Audio signal processing) エフェクター 時間圧縮音声（）   (Time-compressed speech) ピッチコントロール（）  (Pitch control) ピッチ同期波形重畳法   (PSOLA: Pitch Synchronous Overlap and Add) [脚注の使い方] ^ Malah, David (April 1979 1979), “Time-domain algorithms for harmonic bandwidth reduction and time scaling of speech signals”, IEEE Transactions on Acoustics, Speech, and Signal Processing ASSP-27 (2): 121–133  ^ “Stretch and Pitch effect (Waveform Editor only)”, Adobe Audition Help / Time and pitch manipulation effects, http://help.adobe.com/en_US/audition/cs/using/WS58a04a822e3e5010548241038980c2c5-7eeb.html  ^ McAulay, R. J.; Quatieri, T. F. (1988), “Speech Processing Based on a Sinusoidal Model”, The Lincoln Laboratory Journal 1 (2): 153–167, http://www.ll.mit.edu/publications/journal/pdf/vol01_no2/1.2.3.speechprocessing.pdf  ^ Thielemann, Henning (December 2010), “Untangling phase and time in monophonic sounds”, Journal of Signal and Information Processing 1 (1): 1–17, arXiv:0911.5171, doi:10.4236/jsip.2010.11001  ^ “The Sound of a Stone — Melodyne inventor Peter Neubäcker on Numbers, Notes and Music”, YouTube (Celemony), https://www.youtube.com/watch?v=u573PyXo-pY 2011年9月11日閲覧。  (円筒上の螺旋の説明は26分付近) ^ Time Scale Modification of Audio, Enounce, Incorproated, (1998-2006), オリジナルの2007年10月17日時点におけるアーカイブ。, https://web.archive.org/web/20071017115714/http://enounce.com/whatistsm.shtml  ^ a b Herb Friedman (July 1983), “Variable speech”, Creative Computing 9 (7): 122, http://www.atarimagazines.com/creative/v9n7/122_Variable_speech.php  ^ Neville Ridley-Smith (June 23, 2006), Listen to podcasts in half the time, http://www.nevsblog.com/2006/06/23/listen-to-podcasts-in-half-the-time/  ^ David Egbert (August 3rd, 2006), Speeding iPods, オリジナルの2006年9月2日時点におけるアーカイブ。, https://web.archive.org/web/20060902102443/http://cid.lib.byu.edu/?p=128  ^ Tim Carroll (03.26.2004), “Dolby, The Chipmunks And NAB2004”, TVTechnology, オリジナルの2008年5月27日時点におけるアーカイブ。, https://web.archive.org/web/20080527184101/http://www.tvtechnology.com/features/audio_notes/f_audionotes.shtml  Stephan Bernsee, “Time Stretching and Pitch Shifting Overview” — 現代のタイム-ピッチ修正技術の包括的概観 フェーズボコーダ Mark Dolson, “The Phase Vocoder: A Tutorial” — フェーズボコーダに関するよい解説 Jean Laroche, Mark Dolson, “New Phase-Vocoder Techniques for Pitch-Shifting, Harmonizing and Other Exotic Effects” Axel Röbel, “A new Approach to Transient Processing in the Phase Vocoder” OverLap-Add系アルゴリズム 池田幹男, “PICOLA と TDHS” — MPEG4規格オプションの時間伸長アルゴリズム PICOLA (Pointer Interval Controlled OverLap and Add)と、それとよく類似した周波数軸圧伸アルゴリズム TDHS (Time Domain Harmonic Scaling) ソースコード Elastique from Zplane — 一部のDJソフトウェアで使われているコード「Elastique」 タイムストレッチ Dirac Time Stretching Library — 人気のあるフリーおよび商用版のタイムストレッチ・ライブラリ「Dirac」(iOS, Linux, Windows, Mac OS X用) ピッチシフト Stephan Bernsee's smbPitchShift C source code — 周波数領域でピッチ操作を行うC言語ソースコード pitchsift.js from KievII — Javascript ピッチシフター (オープンソースのKievII libraryのsmbPitchShiftコードに基づく) How to build a pitch shifter — DSPチップ上で動作するギター用リアルタイム・ピッチシフターの理論、数式、図面 および 性能