BYU-ODH / apeworm

Vowel Recognition in the Browser
byu-odh.github.io/apeworm
Mozilla Public License 2.0
47 stars 20 forks source link

How to get formant3 #19

Open hikkie3110 opened 9 years ago

hikkie3110 commented 9 years ago

Dear development member

I'm Hikaru SAITOH from Japan.

I have some questions about this source code.

I want to realize a real-time mapping formant2 and formant3.( x-axis:formant2,y-axis:formant3)

Question1: Can I get formant1,2,3 by using "getFormant" method? or is this method still a work in progress?

Question2: Coud you mind if tell me how to get formant3(or normalizing data of formant3) from mfccs?

Regards, Hikaru

webnard commented 9 years ago

Hi @HikaruSaitoh! We're glad that you're interested in our project. The getFormants() method should return three formants, indices [0], [1], and [2], but the method doesn't do so using traditional methods, like using LPC. Hopefully in the future this method will be a little more reliable.

Unfortunately we don't yet have any weighting methods for a third formant using MFCCs. Our weights come directly from the organization from which we ported this project to JavaScript, and we haven't published any work as of yet to expand upon that. @coryfin or some of the other @BYU-ODH/developers might have more information to add.

In the meantime, you might consider looking at the source code for Praat or WaveSurfer, both which do a good job of computing LPCs that you can use to extract formants from. We would be more than happy to accept a pull request that gives this kind of functionality to our project. @PaulBoersma is the main contributor for the Praat project.

TannerPlauche commented 9 years ago

Hi Ian, I downloaded your source code to look at how to pull the 3 formant. I set it up to display the values of F1-3 on the screen. Do you have a plan to implement MFCC normalization for F3? I am interested in working on this and sent a pull request earlier.

hikkie3110 commented 9 years ago

Hi, @webnard

I appreciater for your kindness! I understand that getFormant() is less reliable than traditional methods. and I will check Praat or WaveSurfer as you adivised.

Thank you

Regards, Hikaru

hikkie3110 commented 9 years ago

HI, @LevPlosejovic

I have heard "you set it up to display the values of F1-3 on the screen" from your post. Could you tell me how to set it up?

Regards, Hikaru

TannerPlauche commented 9 years ago

Sure. I cannot run the site from my computer. I think I am missing a file or need to get a server to run the site and algorithms. Once I do that and confirm that I am extracting the formants correctly,I will share it with you. I am new to Github open source things and may need to request a pull. I'm not sure, but I will keep you informed. Arigato.

Oct-30-2015----I was missing Grunt. I got it to run, but it's still sporadic. Additionally, the current version that is available as full open source is actually running mfcc values, not formants. I misunderstood this from the documentation and the code has lots of unused code bits. There may be some updates soon though.

Tanner Plauché 720-222-1037

"У нас не любят свободу недостаточно. " -Alexandr Solzhenitsyn

On Mon, Sep 14, 2015 at 7:19 PM, HikaruSaitoh notifications@github.com wrote:

HI, @LevPlosejovic https://github.com/LevPlosejovic

I have heard "you set it up to display the values of F1-3 on the screen" from your post. Could you tell me how to set it up?

Regards, Hikaru

— Reply to this email directly or view it on GitHub https://github.com/BYU-ODH/apeworm/issues/19#issuecomment-140246616.

hikkie3110 commented 9 years ago

HI, @LevPlosejovic

I appreciate for your reply. I see that you my miss a file or something need to run the algorithms. (sadly...

thank you for your kindness.

I continue to attempt getting formant3.

webnard commented 9 years ago

Hi @LevPlosejovic—

Unfortunately, I'm not an employee of @BYU-ODH anymore, so I'm not sure if there are any plans on implementing the F3 format. @jlmcdonald might be able to direct your question to one of the employees actively working on this project.

In order to run the project locally, you should need to run the following commands (assumes Node.js is installed, and probably also assumes you're running *nix):

npm install
npm install -g grunt
grunt

That will compile the JS files for you into something that the HTML file is currently referencing.

TannerPlauche commented 9 years ago

Ahhh. Got it. I don't Node. I'll download it. Also, ignore my pull request. I didn't understand what I was doing when I made the request.

Thanks!