更新日 2010年1月16日
TD-PSOLAとは
TD-PSOLAとは、Time Domain Pitch Synchronous Overlap Addの略です。TD-PSOLAでは、時間波形の相関演算を行い、相関係数の最も大きい位置を1周期としてピッチを計算します。ピッチを上げる場合はその1周期を詰めて配置します。ピッチを下げる場合には1周期を空けて配置します。(波形を圧縮伸長するのではなく、波形を切り貼りすると言った感じ。) ピッチを変えないで時間を長くする場合には同じ周期を繰り返します。時間を短くする場合は特定の周期を削除します。この場合、波形の圧縮伸長は行っていないので、フォルマントは不変です。
ピッチをa倍して、フォルマントをb倍する場合には、ピッチをa/b倍して、再生時間をb倍にします。そして、再生速度をb倍にすることで、最初と同じ再生時間で、ピッチはa倍、フォルマントはb倍になります。(この様子を「恋音」のスペクトログラムで解説したのはこちら参照)
Phase Vocoderとは
TD-PSOLAは単音でないとうまく動作しませんが、Phase Vocoderならば、どんな音楽でもピッチを変換できます。Phase Vocoderでは、まず左右の音声をそれぞれにFFT(フーリエ変換)します。少ないデータ数のFFTから高精度に周波数を推定するために、連続したフレーム(フレームとは時間の切り出しの単位のこと)の位相差も使用します。ピッチをa倍にする場合には、f1にあった周波数をa×f1の位置に移動します。このように、周波数軸上で処理を行った後にIFFT(逆フーリエ変換)します。Phase Vocoderではピッチと同時にフォルマントも変化してしまうので、ピッチを大きく変えようとすると、不自然な声に聞こえてしまいます。でも、ピッチ変化が3割程度なら、男声ボーカルが女声ボーカルに、あるいは女声ボーカルが男声ボーカルに聞こえて、伴奏もそれに合ったピッチで聞こえます。
Vocal cutの方法
中央にボーカルの定位があるステレオ音声の右と左を減算するとボーカルが消えるのは良く知られています。しかし、減算するとモノラル音声になってしまいます。
私もどうしたらステレオのままボーカルを消せるのかなと思っていたら、「恋声」のソフトウエア構成があれば簡単に実現できることが分かったのでやってみました。「恋声」のPhase Vocoderの処理では、まず左右の音声それぞれにFFTを行います。この周波数領域で左右の振幅と位相が近接していたらボーカルと判断して振幅を落とす。これだけで、ボーカルを落としながら、伴奏はステレオのまま聞こえてきます。ボーカルを抽出するには、近接していない信号を落とせば良いです。
実際にやってみると、かなりうまくカット/抽出できるCDと、うまくいかないCDがありました。うまくいくのは編成の小さなアレンジで、編成が大きくなって楽器数が増えてくるとボーカルカットはそれなりでもボーカル抽出はうまくできなくなります。
ボーカルと同じく中央に定位のあるベースをきれいに分離するには、ボーカルの最低音を正確に入力する必要があります。