フェーズボコーダ

提供: testwiki
2023年11月12日 (日) 18:30時点におけるimported>Tarepanによる版 (追加: 関連項目)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

フェーズボコーダテンプレート:Lang-en)は音声信号を周波数領域の振幅と位相でモデル化するボコーダである[1][注釈 1]

フェーズボコーダの心臓部は短時間フーリエ変換 (STFT)であり、次の段階を経る。

  1. 分析:  STFTによる時間領域表現→テンプレート:仮リンク変換
  2. 変更:  任意の周波数成分の振幅・位相操作
  3. 再合成: 逆STFTによる周波数領域表現→時間領域表現変換

フェーズボコーダは周波数領域での変更処理により音声信号の時間伸縮とピッチ変換などを可能にする。また再合成前にSTFT分析フレームの時間的位置を変更すれば、再合成結果の時間発展を変更でき、たとえば音の時間スケール変更を実現できる。

位相コヒーレンス問題

位相コヒーレンス問題はSTFTによる時間-周波数表現 (STFT表現) の操作で必ず解決が必要な主要問題である。これは、時間軸方向にオーバーラップした分析窓(窓関数)を使用する事により、個々の信号成分 (正弦波、インパルス) が、複数のフレームやSTFT周波数ビン(bin)へ拡散しまう問題である(周波数については「スペクトル漏れ」にあたる。)。窓関数の時間的オーバーラップは、隣接するSTFT分析結果が互いに強い相関を持つという事実に基づいている (時刻 t の分析フレームに存在する正弦波成分は、後続フレームにも同様に存在し続ける可能性が高い)。

STFT表現上で行なう全ての変更は、隣接する 周波数ビン (垂直コヒーレンス) や 時間フレーム (水平コヒーレンス) との間で 「適切な相関関係」を維持する必要がある。これは、フェーズボコーダによる信号変形の問題に関連している。合成音が極めて単純な場合以外、この「適切な相関関係」を正確に維持ですることは困難である。フェーズボコーダの発明以来、研究は主にSTFT表現変更後に垂直/水平コヒーレンスを維持するアルゴリズムの発見のために行われてきた。なお、振幅コヒーレンスは、時間スケール操作に関してマイナーな問題に過ぎない。なぜなら、分析フレームの時間シフトは、振幅に小さな影響しか与えないからである。しかし位相コヒーレンスの問題は、適切な解決策が得られるまでかなり長い期間の検討を要した。

歴史

フェーズボコーダは テンプレート:Lang によって、正弦波成分を表す各ビンの位相間で水平コヒーレンスを維持するアルゴリズムとして導入された[2]。このオリジナルのフェーズボコーダは、隣接する周波数ビン間の垂直コヒーレンスを考慮しなかったので、このシステムによるタイムストレッチ(時間伸縮)の音響信号は明瞭さが欠けていた。

振幅変更後のSTFT表現から音響信号を再構築する最適な方法は、テンプレート:Lang により提案された[3]。このアルゴリズムはコヒーレントSTFT生成の問題を考慮していないが、たとえ変更済みSTFTがコヒーレントでなくとも(いかなる信号も表現していなくとも)、それに可能な限り近いSTFTに相当する音響信号の発見を可能にする。

垂直コヒーレンスの問題は、タイム・スケーリング操作の品質に関する大きな問題として、テンプレート:Lang[4] が周波数ビン間の位相的整合性を保つずっと簡単な方法を提案するまで、(問題が)残り続けた。LarocheとDolsonの提案は、フェーズボコーダの歴史的転換点と看做すべきだろう。垂直位相の整合性保証により、非常に高品質なタイムスケーリング変換が得られることが示されている。

Larocheが提案したアルゴリズムは、発声(あるいはノート発音)の瞬間の水平位相コヒーレンスの維持は不可能だった。この問題の解決策はテンプレート:Lang が提案した[5] 。ここで説明したRöbel提案までの音質改善策を施した、フェーズボコーダ・ベースの信号変換のソフトウェア実装例として、テンプレート:Langを挙げることができる [6]

音楽での使用

イギリスの作曲家 テンプレート:Langは、人間の声のフェーズボコーダ分析/変換に基づいて、“テンプレート:Lang” (アルバム “テンプレート:Lang”) を制作した[7]。アメリカの作曲家 ロジャー・レイノルズの作品 “テンプレート:Lang” は、フェーズボコーダをフルート音のタイムストレッチに使用した[8]

商用音楽制作で広く活用されているプロプライエタリなピッチ修正ソフトウェア「テンプレート:Lang」も、フェーズボコーダの動作原理に基づいているとみなされている[9][10]

関連項目

注釈

テンプレート:脚注ヘルプ

  1. 信号の位相情報とは、信号を極形式表示した場合の偏角 θ の事。信号の周波数や位相の時間的変化を踏まえてテンプレート:仮リンクと呼ぶ。
    • 一般に信号解析では複素解析を応用して、実信号x(t)を形式的に複素拡張してテンプレート:仮リンクxa(t)=x(t)+ix~(t) として扱い、オイラーの公式で極形式 xa(t)=reiθ に変換して、偏角θを得る。
    • 信号が単純な余弦関数もしくは正弦関数の場合、その引数が偏角である。
    • フェーズボコーダのようなフーリエ変換の応用では、信号のフーリエ級数xk(t)を極形式に変換して、フーリエ級数の偏角θk(t)を得る。
    信号のフーリエ級数:  xk(t) =akcos(2πfkt)+bksin(2πfkt)   (直交形式)
    =rkcos(2πfkt+ϕk)   (極形式)
    フーリエ級数の偏角:  θk(t) =2πfkt+ϕk

    (関連記事: 「アディティブ・シンセシス」の"周期関数のフーリエ級数展開"、"周波数の時間発展")

出典

  1. "The method specifies the speech signal in terms of its short-time amplitude and phase spectra. For this reason, it is called phase vocoder." Flanagan, et al. (1966). Phase Vocoder.
  2. テンプレート:Lang
  3. テンプレート:Lang
  4. テンプレート:Lang
  5. テンプレート:Lang
  6. テンプレート:Lang
    テンプレート:Langは、テンプレート:Lang で使われている 拡張フェーズボコーダ であり、その提供機能は、タイムストレッチピッチシフト、フィルタリング、クロスシンセシス音源分離とリミックス、構成成分のトリートメントと再構築、ノイズ除去、等。 テンプレート:Langのカーネルとして、テンプレート:Langを提供するテンプレート:Langライブラリと共に使用されている。
  7. テンプレート:Lang
  8. テンプレート:Lang
  9. Mary Bellis, Who Invented Auto-Tune?, Harold Hildebrand aka Dr Andy Hildebrand Invented Auto-Tune, About.com, 2014年7月26日閲覧.
  10. Joe Diaz, The Fate of Auto-Tune, マサチューセッツ工科大学, 2009.

参考文献

外部リンク

テンプレート:Wikibookslang

ソフトウェア


テンプレート:音声合成