フェーズボコーダ

フェーズボコーダとは、オーディオ信号の位相情報を使って 周波数と時間領域を個別にスケーリング（英語版）可能な、ボコーダの一種である。このコンピュータ・アルゴリズムは、ディジタル・サウンドの周波数領域での変更処理 (典型的にはオーディオ信号の時間伸縮とピッチ変換) を可能にする。 フェーズボコーダの心臓部は短時間フーリエ変換 (STFT)であり、一般に高速フーリエ変換 (FFT)で実装される: 分析: 　STFTを使って音の時間領域表現を時間-周波数表現（英語版）へと変換し、 変更:　 任意の周波数成分の振幅や位相を変更して、 再合成: 逆STFTで周波数領域表現を時間領域の音へと再合成する。 また再合成前にSTFT分析フレームの時間的位置を変更すれば、再合成結果の時間発展を変更でき、たとえば音の時間スケール変更を実現できる。 STFTによる時間-周波数表現 (STFT表現) の操作で必ず解決が必要な主要問題は、個々の信号成分 (正弦波、インパルス) の複数のフレームやSTFT周波数ビン(bin)への拡散の問題である。これはSTFT分析が、時間軸方向にオーバーラップした分析窓を使用する事に起因する: 窓関数の適用は、個々の正弦波成分が隣接するSTFTビンへと拡散する「スペクトル漏れ」を起こす。窓関数の時間的オーバーラップは、隣接するSTFT分析結果が互いに強い相関を持つという事実に基づいている (時刻 t の分析フレームに存在する正弦波成分は、後続フレームにも同様に存在し続ける可能性が高い)。 フェーズボコーダによる信号変形の問題は、STFT表現上で行なう全ての変更は、隣接する 周波数ビン (垂直コヒーレンス) や 時間フレーム (水平コヒーレンス) との間で 適切な相関関係を維持する必要がある、という問題に関連している。この「適切な相関関係」は、合成音が極めて単純な場合以外、近似でしか維持できない。フェーズボコーダの発明以来、研究は主にSTFT表現変更後に垂直/水平コヒーレンスを維持するアルゴリズムの発見のために行われてきた。なお振幅コヒーレンスは、時間スケール操作に関してマイナーな問題に過ぎない。なぜなら分析フレームの時間シフトは、振幅に小さな影響しか与えないからである。しかし位相コヒーレンスの問題は、適切な解決策が得られるまでかなり長い期間の検討を要した。 フェーズボコーダは Flanagan & Golden (1966) によって、正弦波成分を表す各ビンの位相間で水平コヒーレンスを維持するアルゴリズムとして導入された。 このオリジナルのフェーズボコーダは、隣接する周波数ビン間の垂直コヒーレンスを考慮しなかったので、このシステムによるタイムストレッチ(時間伸縮)の音響信号は明瞭さが欠けていた。 振幅変更後のSTFT表現から音響信号を再構築する最適な方法は、Griffin & Lim (1984) により提案された。 このアルゴリズムはコヒーレントSTFT生成の問題を考慮していないが、たとえ変更済みSTFTがコヒーレントでなくとも(いかなる信号も表現していなくとも)、それに可能な限り近いSTFTに相当する音響信号の発見を可能にする。 垂直コヒーレンスの問題は、タイム・スケーリング操作の品質に関する大きな問題として、Laroche & Dolson (1999) が周波数ビン間の位相的整合性を保つずっと簡単な方法を提案するまで、(問題が)残り続けた。LarocheとDolsonの提案は、フェーズボコーダの歴史的転換点と看做すべきだろう。垂直位相の整合性保証により、非常に高品質なタイムスケーリング変換が得られることが示されている。 Larocheが提案したアルゴリズムは、発声(あるいはノート発音)の瞬間の水平位相コヒーレンスの維持は不可能だった。この問題の解決策はRöbel (2003) が提案した。 ここで説明したRöbel提案までの音質改善策を施した、フェーズボコーダ・ベースの信号変換のソフトウェア実装例として、IRCAM SuperVPを挙げることができる。 イギリスの作曲家 トレヴァー・ウィシャート（英語版）は、人間の声のフェーズボコーダ分析/変換に基づいて、“Vox V（）” (アルバム “Vox Cycle（英語版）”) を制作した。 アメリカの作曲家 ロジャー・レイノルズの作品 “Transfigured Wind（）” は、フェーズボコーダをフルート音のタイムストレッチに使用した。 商用音楽制作で広く活用されているプロプライエタリなピッチ修正ソフトウェア「Auto-Tune」も、フェーズボコーダの動作原理に基づいているとみなされている。 オートチューン (Auto-Tune) タイムストレッチ/ピッチシフト (Audio time-scale/pitch modification) ボコーダー (Vocoder) ^ 信号の位相情報とは、信号を極形式表示した場合の偏角 θ {\displaystyle \theta } の事。信号の周波数や位相の時間的変化を踏まえて瞬時位相（英語版）と呼ぶ。 一般に信号解析では複素解析を応用して、実信号 x ( t ) {\displaystyle x(t)} を形式的に複素拡張して解析信号（英語版） x a ( t ) = x ( t ) + i ⋅ x ~ ( t ) {\displaystyle x_{a}(t)=x(t)+i\cdot {\tilde {x}}(t)} として扱い、オイラーの公式で極形式 x a ( t ) = r ⋅ e i θ {\displaystyle x_{a}(t)=r\cdot e^{i\theta }} に変換して、偏角 θ {\displaystyle \theta } を得る。 信号が単純な余弦関数もしくは正弦関数の場合、その引数が偏角である。 フェーズボコーダのようなフーリエ変換の応用では、信号のフーリエ級数 x k ( t ) {\displaystyle x_{k}(t)} を極形式に変換して、フーリエ級数の偏角 θ k ( t ) {\displaystyle \theta _{k}(t)} を得る。 (関連記事: 「アディティブ・シンセシス」の"周期関数のフーリエ級数展開"、"周波数の時間発展") ^ ボコーダの分類: チャネルボコーダ: Dudley (1939)が発明した最初のボコーダ。信号をフィルタバンクで周波数帯域(チャネル)に分割し、各チャネルの振幅だけを扱う。位相が欠落するので、音の自然さが失われる。 フェーズボコーダ: 信号の振幅と位相 (極形式の振幅と偏角) の両方を扱うことで、より自然な音を再現する。 LPCボコーダ:       信号のスペクトル包絡情報を、線形予測による全極IIRフィルタ係数で表現する線形予測符号化 (LPC)も、しばしばボコーダの一種として参照される。 Dudley, Homer (1939), “The vocoder”, Bell Labs Record 17: 122–126  ^ Flanagan, J.L.; Golden, R.M. (1966), “Phase vocoder”, Bell System Technical Journal 45 (9): 1493–1509, http://www.alcatel-lucent.com/bstj/vol45-1966/articles/bstj45-9-1493.pdf  ^ Griffin, D.; Lim, J. (1984), “Signal Estimation from Modified Short-Time Fourier Transform”, IEEE Transactions on Acoustics, Speech and Signal Processing 32 (2): 236–243, doi:10.1109/TASSP.1984.1164317, http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1164317  ^ Laroche, Jean; Dolson, Mark (1999), “Improved Phase Vocoder Time-Scale Modification of Audio”, IEEE Transactions on Speech and Audio Processing 7 (3): 323–332, doi:10.1109/89.759041, http://ieeexplore.ieee.org/iel4/89/16428/00759041.pdf  ^ Röbel, Axel (IRCAM) (2003), “A new approach to transient processing in the phase vocoder”, DAFx-03: Proc. of the 6th Int. Conference on Digital Audio Effects, オリジナルの2004年6月17日時点によるアーカイブ。, https://web.archive.org/web/20040617224423/http://www.ircam.fr/equipes/analyse-synthese/roebel/paper/dafx2003.pdf  ^ SuperVP (Software), Analysis-Synthesis Team, IRCAM, http://anasynth.ircam.fr/home/english/software/supervp  SuperVP (Super Phase Vocoder)は、IRCAM で使われている 拡張フェーズボコーダ であり、その提供機能は、タイムストレッチ、ピッチシフト、フィルタリング、クロスシンセシス、音源分離とリミックス、構成成分のトリートメントと再構築、ノイズ除去、等。 AudioSculptのカーネルとして、Sinusoidal modelingを提供するPm2ライブラリと共に使用されている。 ^ Wishart, Trevor (Winter, 1988), “The Composition of Vox 5”, Computer Music Journal 12 (4): 21–27, JSTOR 3680150, http://www.jstor.org/stable/3680150  ^ Serra, Xavier (1989), “A System for Sound Analysis/Transformation/Synthesis based on a Deterministic plus Stochastic Decomposition”, PhD thesis (Stanford University): p. 12, CiteSeerx: 10.1.1.76.2306  ^ Mary Bellis, Who Invented Auto-Tune?, Harold Hildebrand aka Dr Andy Hildebrand Invented Auto-Tune, About.com, 2014年7月26日閲覧. ^ Joe Diaz, The Fate of Auto-Tune, マサチューセッツ工科大学, 2009. The Phase Vocoder: A Tutorial, http://www.panix.com/~jens/pvoc-dolson.par  (英語) — フェーズボコーダに関するチュートリアル New Phase-Vocoder Techniques for Pitch-Shifting, Harmonizing and Other Exotic Effects, http://www.ee.columbia.edu/~dpwe/papers/LaroD99-pvoc.pdf  (英語) — [ピッチシフト、ハーモナイジング、その他のエキゾティックなエフェクトのための新しいフェーズボコーダ・テクニック] “Phase Vocoder”, Guitar Pitch Shifter, http://www.guitarpitchshifter.com/algorithm.html#33  (英語) — フェーズボコーダの解説(図・式入り) ソフトウェア AwesomeBox, http://web.archive.org/web/20110709004823/http://decabear.com/awesomebox.html  (英語) — オープンソースのピッチ修正ソフト