LPC to LSP Confusion...

Started by fyfe93 6 years ago1 replylatest reply 6 years ago269 views

Hi Everyone,

I'm working on a speech vocoder and have so far been able to use the SPTK functions to achieve most of this. However I'm confused as I want to be able to control the order of the lpc coefficients in real-time as a parameter but my LSP2LPC seems to have an upper limit to the order it can convert from LSPs to LPCs (I'm converting to LSPs to do some interpolation and then converting back). I have found the highest order to be 25 but can push the LPC order to 512 for example if I bypass the LPC to LSP/LSP to LPC conversion stage and just filter with the initially derived LPC coefficients.

It looks like the LPC to LSP function is working fine and the problem is in the conversion back to LPC...

Does anyone know why there would be a limit to the order in this conversion. Is there an element in the theory of LSPs that explains this? I'm thinking it is to do with precision error but I'm not sure?

[ - ]
Reply by khuaswOctober 4, 2017

The conversion from LPC coefficients to LSP involves polynomial root finding. It is well-known that closed form for the roots doesn't exist for order > 4 polynomials. The numerical approach to root finding can get extremely unstable on high-order polynomials. Based on my experience, the root finding is accurate up to somewhere around 40 coefficients (single-precision float) using Durand-Kerner algorithm, and order-40 LPC is enough in most speech processing applications. If you need better approximation, either switch to double or use an eigenanalysis-based root finder instead.