[music-dsp] Formant shifting
Sciss
contact at sciss.de
Thu Nov 1 14:56:51 EST 2001
I don't know, maybe this could be interesting: Oppenheim/Schafer propose
some generalized system models called "homomorphic transforms" (or
similar); you can use them in some cases to do a kind of deconvolution
if the spectra of the spectra ;----) i.e. the "cepstra" do not overlap.
this may be the case for speech and the source/filter model where the
formant filter spectrum is very slowly varying and the pulse train
spectrum varies fast.
then taking the FFT of the signal, taking the complex logarithm (which
turns the multiplication of the convolution into addition) and low- or
highpass filtering this "cepstrum", followed by the inverse process
(take exp() and IFFT) may separate source and filter...? i have just
programmed this a couple of days ago but not yet tried it with speech;
but don't be too optimistic, i got a lot of artifacts and a lot of
noise. also you have to be aware of a couple of problems:
filtering the spectrum just by setting some coefficients of the ceptrum
to zero introduces great frequency aliasing; i use a windowed
sync-lowpass but this is very slow of course. also taking the complex
logarithm (which is in fact a rectangular->polar transform followed by
taking the log. of the amplitude) is tricky because log 0 = NaN and
because you must properly "unwrap" the phases and do a linear correction
to make it differentiable. and of course you must work in high
resolution (i use 32bit floating point, but 64 would most certainly be
better). last but not least changing the gain of the cepstra coeffs
introduces distortion (this could be the main point about my artifacts
and noise?)...
just an idea...
ciao,
hanns holger
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
http://shoko.calarts.edu/musicdsp/
More information about the music-dsp
mailing list