voicesauce / opensauce-python

Voice analysis software (Python port of VoiceSauce)
Apache License 2.0
55 stars 16 forks source link

implement the SHRP algorithm. #11

Closed bitdancer closed 8 years ago

bitdancer commented 8 years ago

Including func_GetSHRP. I tried to use that to test against the data generated from voicesauce, but it doesn't match up. This actually makes me feel better, since that means the snack problem is probably not related to snack giving different answers.

So, there's something about how one gets from the data returned by the analysis functions to the data stored in the output files that I'm not yet understanding. But this fun_GetSHRP is returning the same data (at least for my test case) as the original algorithms as run by octave.

krismyu commented 8 years ago

Great! I'll look into this issue with different results from Matlab VoiceSauce and get back to you.

bitdancer commented 8 years ago

I have a copy of the voicesauce .m files, which mostly match the octave version although arranged differently. My plan is to look through the interface code in voicesauce and see if I can figure out how it gets from the call to func_GetSHRP to writing the results to the output csv. Could take a fair bit of spelunking :) It could be as simple as me missing an offset in the starting point.

bitdancer commented 8 years ago

I think I've figured out the problem. Somehow I'd managed to forget about the TextGrid files. The output you gave me uses them, but the output I'm generating doesn't (yet). So, I need to implement the TextGrid output support next.

I'd like to merge this changeset unless you see a problem with it, since it accurately (according to the octave comparision data) implements the SHRP algorithm. I'll do the TextGrid in a followup changset.

krismyu commented 8 years ago

Yes, that sounds great! There is an option in the Matlab VoiceSauce version where you don't use the TextGrids and just output parameters for each timestep at which they've been calculated but it's actually a bit buggy. I think people tend to use the TextGrid in creating the output more often, although I have sometimes tried to use the option where TextGrids aren't used.