06/04/26 07:12:04
周波数軸で変換する方法は
・全体を一度に収まる大きなサイズのFFTで行う方法
・ブロック単位に短時間FFTで行う方法
に別けられる。
ピッチシフトは周波数軸での単なるシフトではなく、指数的移動なので、結構計算コストは大きい。
なお、リアルタイムという事になると短時間FFTという事になるが、
オーバーラップさせて窓関数をかけてブロックをつないでゆくと、つなぎ目で位相が合わなくなるので
違和感が発生する。 位相を合わせてつなぐと、今度はノイズが変質する。
時間軸でノイズ+サイン波を加算した場合も位相があえばサイン波は2倍になる=位相を合わせれば
按分加算出来るが、ノイズは√2倍にしかならないからノイズ音量が波打つ現象が起きるので
なかなか難しい問題だ。