フェーズボコーダーで数週間苦労してきました。最終的な目標は、信号のタイム ストレッチを達成することです。私は多くの進歩を遂げてきましたが、まだ解決すべき問題が 2 つあります。
問題 1 : 合成ウィンドウは必要ですか?
任意のホップ サイズ (たとえば、N/2、N = フレームあたりのサンプル) で、入力信号 (正弦波) からオーバーラップ フレームを取得します。フレームにハニング ウィンドウを適用し、結果を FFT にフィードします。時間ストレッチを実現するために、iFFT を実行し、分析中に使用したホップ サイズとは異なるホップ サイズを使用して、出力フレームをオーバーラップ加算します。
問題は、出力ホップ ファクター = 0.5 (ホップ サイズ = N/2) の場合、出力はスムーズですが、ホップ サイズが大きくなると「振動」が聞こえることです。この画像は、ホップ ファクター = 1 (オーバーラップ ゼロ) の 8 フレームの出力を示しています。音が振動している理由は明らかです。ホップ サイズが小さい場合、フレームはより多くオーバーラップし、サウンドはよりスムーズになります。フェーズボコーディングについてはたくさん読んだことがありますが、しかし、ホップサイズが大きい場合にスムーズな出力を取得する方法がわかりません。私は何が欠けていますか?
Issue2 : 位相補正。
現在、出力は位相補正で悪化していますが、それは別の投稿に譲ります.
お時間を割いていただきありがとうございます。