再生速度と音程を独立に変更する方法 (3)2006年08月13日 23:56

引き続き
 http://cessna373.asablo.jp/blog/2006/08/11/480789
の続報です。

上の記事でも紹介したサイトにある以下のページは分かりやすくまとまっていると思います。
 http://www.dspdimension.com/data/html/timepitch.html

これによると、再生速度変更には Phase Vocoder 方式と Time Domain Harmonic Scaling 方式があります。
前者は短い間隔で FFT を繰り返し、位相の時間変化率を保持したままデータを補間する(あるいは間引く)方法です。
後者は基本周波数に基づいて、時間領域でデータを補間する(あるいは間引く)方法です。
 http://cessna373.asablo.jp/blog/2006/08/03/471112
で説明されているものは後者にあたります。

いずれも単純な方法では高品質な結果は得られないようです。
Phase Vocoder 方式は、smearing と呼ばれる音が鈍るようなサイドエフェクトが発生します。
Time Domain Harmonic Scaling 方式は、単音でないとうまく処理できません。
また再生速度の変更量が大きい場合は前者、小さい場合は後者の方がいい結果が得られるようです。

改良する方法もいろいろ提案されているようで、たとえば Phase Vocoder 方式では以下のようなものが見つかりました。
 http://www.ee.columbia.edu/~dpwe/papers/LaroD99-pvoc.pdf
 http://www.elec.qmul.ac.uk/people/juan/Documents/Ravelli-DAFx-2005.pdf

音程変更も再生速度変更と本質的には同じですが、formant 周波数を保持するなどという新たなトピックがあるみたいです。

RH1 FFT では、実装するにしてもあまり凝ったことはできそうにありません。
まずは単純な処理でどの程度のことができるか試してみることにします。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://cessna373.asablo.jp/blog/2006/08/14/482731/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。