Formant analysis with LPCAnalyzer?


#1

Hi,

I’d like to track the first two formant frequencies of a live vocal input, for doing a rough vowel estimation. Apparently, Linear Predictive Coding is the proven method to achieve that. So I’m looking at the LPCAnalyzer ugen from the plugins, but from reading the doc, I can’t figure out how to collect the analysis info. It looks like the ugen does a resynthesis but doesn’t share the analysis parameters it computes.

Has someone figured this out before? I’m also interested in an alternative method for formant analysis if you have some advice…

Thanks


#2

LPC is a filtering technique that uses auto-correlation to create filter coefficients to drive the filter in resynthesis. The analysis step of LPC doesn’t give you formant frequencies to use. I am sure you may be able to do something with the coefficient data (depending on the number of poles in the analysis) that can give you some freq data, but I’m not sure what those steps would look like. In JoshMisc quark there is an LPCAna class that will store the filter data for you to a file if you wanted to examine the data (or, also, locally to its instance variable ‘data’.


#3

Well, yes it’s these filter coefficients from the analysis step that I would like to retrieve (in realtime, so the LPCAna class wouldn’t help I’m afraid). As for the formant frequencies estimation from the LPC coefficients, it seems like it’s a pretty well documented technique that’s been around for some time :

https://fr.mathworks.com/help/signal/ug/formant-estimation-with-lpc-coefficients.html


#4

this isn’t possible with our current set of core UGens, sorry. i’m hoping that more work can be done in the future to expand SC’s audio analysis features.