再生速度と音程を独立に変更する方法 (4)2006年08月15日 22:54

 http://cessna373.asablo.jp/blog/2006/08/14/482731
の続きというか補足です。

音程を変化させる方法としてまず思いつくのが FFT --> 周波数領域でデータをずらす --> IFFT というものではないでしょうか。
私も最初にこれを考えましたし、調べているときもこれでコケて質問している人をたびたび見かけました。

これでダメな理由を 100% クリアに説明することは私にはできません。
基本的には 「重要なのは位相であり、それを上手く調節してやらなければならない」 ということのようです。
考えてみれば正弦波を重ね合わせるだけで無音に近い状態も表現できるわけで、それには位相をうまく合わせて打ち消しあうようにしなければならないというのは直感的に分かります。

では実際に FFT --> 周波数領域でデータをずらす --> IFFT を行うとどうなるのでしょうか。
周波数領域で(データを間引いて)単純に一オクターブ分低くして上半分を 0 で埋めた場合、確かに音程は低くなるのですが再生速度も半分になります。
つまり時間領域でデータを補間して再生速度を下げるのと同じ結果になります。
(データ量が同じで再生速度が遅くなるわけですから、音声が途中で途切れます)
要するに周波数領域でちょっといじるだけでは本質的には何も変わらないということですね。