位相ずらして変な音

ルームメイトが午前二時半に呑み会から友人を引き連れたまま帰ってきて家で騒ぎ始め、その物音で起こされてから寝付けなくなり、それからずっと研究っぽいことをしてました。

今日のテーマはAll-Pass Filter。音の振幅を変化させると音質に大きな影響がありますが、人間の耳は位相の変化にはあまり敏感ではない(特にモノラルの時)ので、位相をちょっと変えてやっても音質にほとんど変化はありません。All-Pass Filterは、振幅特性を変化させずに位相特性だけを変化させるフィルタです。リバーブの初期残響音にフィルタをかける目的でいろいろいじっていたんですが、位相もここまでいじると大変なことになるよ、という面白い音ができました。音質はまったくそのままなのに、時間方向に平均をとったような変な感じ。ピアノ単音(変換前変換後)とLed Zeppelinの「Rock&Rock」(変換前変換後)。

これ、元の音にFFTをかけて周波数領域に持って行き、複素数データを振幅と位相に分けた後で位相成分に定数をかけ算したり乱数を加算したりし、複素数データに戻してからIFFTで時間領域に戻す、というとても単純な方法でやっています。かけ算する定数を変化させると、時間方向にどのくらいの幅でシフトさせるかが指定できます。ピアノは音が短かったので大きめの定数を、ツェッペリンは原音の成分が残って聞こえる程度に小さい定数を使っています。

この方法を使うと、ビートなんかの時間方向への変化があいまいになり、音質だけに集中して聞くことができるようになります。一曲まるまる平均をとって聞き比べたり、Aメロ・Bメを聞き比べたりすることによって、時代やセクションによってどう音質が変化したのかを調べるのも面白いですし、人間の声にかけて声紋パターンを見たり効果音を作ったりするのも面白そうです。あと、これに似た方法を薄〜く使うと、音質にあまり影響を与えずに音量をブーストできるので、最近のラジオやテレビで流されるCMの音量アップに使われることもあるようです。