hi, I wonder if anyone did vowel recognition with Pd. Maybe ed kelly? or brian j.? can it be based on fiddle~ or does it neeed more/other objects/technology? marius.
moin Marius, moin list,
sorry, haven't tried it yet -- i'm more interested in getting funny noises out of pd than into it ;-) Maybe Andy Farnell has done something along these lines?
Speculating wildly (e.g. without any experience in vowel detection), I think [fiddle~] probably won't work on its own: it's designed to detect the fundamental frequency (f0), whereas vowels will differ primarily in the formants: maybe an fft approach would work? or perhaps you could have several instances of [fiddle~], tweaking the parameters such that each detects a single formant? ... just wild speculation ...
marmosets, Bryan
On 2008-03-11 00:35:42, marius schebella marius.schebella@gmail.com appears to have written:
hi, I wonder if anyone did vowel recognition with Pd. Maybe ed kelly? or brian j.? can it be based on fiddle~ or does it neeed more/other objects/technology? marius.
On Tue, 11 Mar 2008 09:19:08 +0100 Bryan Jurish moocow@ling.uni-potsdam.de wrote:
moin Marius, moin list,
sorry, haven't tried it yet -- i'm more interested in getting funny noises out of pd than into it ;-) Maybe Andy Farnell has done something along these lines?
No, I've nothing much to offer here except that LPC (linear predictive coding) is one way I believe vowel recognition can be done.
Perry and Eduardo Miranda both mention it in their textbooks in this context and I'm pretty sure there's a whole stack of papers out there from speech recognition people that will point you in this direction.
LPC delivers the pitched or noisy component, plus a residual error, plus a profile of a filter that would reconstruct the orginal signal if the pitched/noisy part were subjected to it. I can't remember exactly how this works, but there is a way to turn the LPC analysis into the coefficients for this filter. In Csound it works as an analysis resynthesis pair.
I think only three strong poles need to be identified then pattern matching to the spacing of these formants should give you the vowel, independently of the voice age/gender/louness etc when you look at the ratios (say the first and second distance vs the first and third)
Speculating wildly (e.g. without any experience in vowel detection), I think [fiddle~] probably won't work on its own: it's designed to detect the fundamental frequency (f0), whereas vowels will differ primarily in the formants: maybe an fft approach would work? or perhaps you could have several instances of [fiddle~], tweaking the parameters such that each detects a single formant? ... just wild speculation ...
marmosets, Bryan
On 2008-03-11 00:35:42, marius schebella marius.schebella@gmail.com appears to have written:
hi, I wonder if anyone did vowel recognition with Pd. Maybe ed kelly? or brian j.? can it be based on fiddle~ or does it neeed more/other objects/technology? marius.
-- Bryan Jurish "There is *always* one more bug." jurish@ling.uni-potsdam.de -Lubarsky's Law of Cybernetic Entomology
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hallo!
I wonder if anyone did vowel recognition with Pd.
AFAIK no.
I added speech recognition for the GSoC projects some day ago: http://puredata.info/dev/summer-of-code/SpeechRecognitionForPD
So you could try to use SPHINX or HTK. E.g. look at this tutorial: http://www.speech.cs.cmu.edu/sphinx/tutorial.html.
LG Georg
On Mon, 2008-03-10 at 19:35 -0400, marius schebella wrote:
hi, I wonder if anyone did vowel recognition with Pd. Maybe ed kelly? or brian j.? can it be based on fiddle~ or does it neeed more/other objects/technology?
You might be able to make a crude vowel recognition system using [fiddle~] and [choice]. You could make some vowel profile vectors using the sinusoidal components from the 5th output of fiddle~, and build a database of vowel profiles in [choice], which can be matched to unknown 'candidate' vectors.
If you want to do it using a more sophisticated/conventional technique, you should probably look at using MFCC or LPCC to create your feature vector, combined with a classifier such as k-NN or neural network to do the actual recognition. All of these things can be done in Pd with the help of a few externals. My libxtract library supports both MFCC and LPCC extraction and has a Pd implementation:
http://sourceforge.net/projects/libxtract
If you are going to use it, I would advise checking out the svn version since it includes a number of bug fixes and new features.
best,
Jamie