0
$\begingroup$

From my days at college I rememeber that LPC splits a signal into a series of slowly changing filter coefficents and an audio-rate residual error signal, such that the original signal gets reproduced when you run the residual signal as "excitation" through a time-varying filter which is controlled by those coefficients.

The cool thing is that you can replace the residual signal by another signal (e.g. a pulse train) and many of the characteristics of the original signal will be preserved. The excitation signal simply does not carry much information (except the pitch) and thus can be replaced.

I find this concept absolutlely intriguing.

I was hoping that this method could be used to sythesize real-world instruments. I could e.g. replace the residual signal of a real Guitar, by one which was created by a Karplus-Strong algorithm. I would have full control over that signal and if I feed it through the filter coefficients taken from a real guitar, this should take aways much of the artificial feel of Karplus-Strong.

The same reasoning led me to believe that one could build a fine vocal pitch correction this way. You pitch corect the residual and most of the unwanted artifacts will get filtered away in the filtering stage.

But all my attempts failed somewhat. For one, there does not seem to be much support for LPC in the open-source community(Luckily "lpanal" is still around). I played with csound and supercollider and I am getting the feeling that I am on the wrong track.

  • Does the above make any sense or where did I go wrong?
  • Is this idea of separating excitation from filtering widely used in sound synthesis? (I believe there is some audio compression algorithm, which uses LPC)
  • Are there other methods which separate excitation from filtering?
$\endgroup$
2
$\begingroup$

Does the above make any sense or where did I go wrong?

Yes.

Is this idea of separating excitation from filtering widely used in sound synthesis? (I believe there is some audio compression algorithm, which uses LPC)

Yes it does.

  • For decades it was the strongest approach for speech - and by extension singing voice - synthesis.
  • As for musical applications, in the framework of subtractive synthesis, filters or resonator banks (Moog 914) were used to model the coloration brought by the body of an instrument, or to create vocal sounds.
  • The vocoder uses this principle to apply the formants (filters) extracted from a vocal signal onto a synthetic excitation signal coming from a synth.
  • It is not uncommon to find a filter simulating the body of an instrument as the final step in a physical model (for example a simple bowed instrument model).
  • Modal synthesis is another sound synthesis technique based on the representation of sound as an excitation shaped through a filter.
  • One could also consider that the virtual amp/speaker modelling techniques used to build today's electric guitar sound are inspired by this approach - the signal coming straight from the guitar being considered as a raw excitation shaped by the footprint of an amp & speaker.
  • Actually, any convolution processor (such as a reverberator) might be seen as an application of this technique - when you sing in a room, your voice is the excitation, the room the resonator.
  • This idea is also relevant to pitch-shifting. When a speaker speaks at a higher or lower pitch, the fundamental is modified, but the formants do not move (ideally...) - so a good pitch-shifting technique should preserve formants. To pitch-shift vocals or musical instruments sounds in a meaningful way, it might be a good idea to pitch-shift only the excitation part of the signal, while keeping the filter representation unchanged. In practice, though, we use techniques that do not explicitly make the actual separation (PSOLA in the time-domain, or spectral envelope manipulations in the frequency-domain when using a phase vocoder).

Are there other methods which separate excitation from filtering?

Cepstral analysis. In some situations, adaptive filtering.

$\endgroup$
0
$\begingroup$

Basically it depends on the application. For example in the automatic speech recognition (ASR) the first step would be to extract some "meaningful" features from the raw speech. In the ASR one is interested in features that are as speaker invariant as possible, because the only thing that matters is the content of the speech not the speaker himself. To do that you have to get rid of everything that is speaker dependent, like pitch frequency. You might be interested in this Speech Analysis - Linear Predictive Coding (LPC) vs. The Cepstrum. The "Liftering" concept is used to separate the excitation from filtering.

If you are really interested in state-of-the-art feature extraction you can look at the Mel-frequency cepstral coefficients (MFCCs). There are lots of open-source feature extraction softwares out there like HTK toolkit and KALDI.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.