woodyard

Forum Replies Created

Viewing 6 posts - 1 through 6 (of 6 total)

  • Author
    Posts
  • in reply to: Optimizing open ears for single word recognition #1015466
    woodyard
    Participant

    In this code snippet:
    // kAudioSessionMode_Default = ‘dflt’,
    // kAudioSessionMode_VoiceChat = ‘vcct’,
    // kAudioSessionMode_VideoRecording = ‘vrcd’,
    // kAudioSessionMode_Measurement = ‘msmt’

    UInt32 audioModeClassification = kAudioSessionMode_VideoRecording; //set what you want it to be
    UInt32 audioModeCheckSize = sizeof (UInt32);
    UInt32 audioModeCheck = 999;

    Is it necessary to remove the // in front of // kAudioSessionMode_VideoRecording = ‘vrcd’,?

    in reply to: Optimizing open ears for single word recognition #1015456
    woodyard
    Participant

    It’s the latter – insufficient mic sensitivity. I looked at that thread, and it looks like I should attempt to follow the steps described by hartsteins in his May 25th post to nvrtd. Is that correct? The other parts of the thread seem to be about output routing. He mentions recompiling the framework after making the addition – does the framework get rebuilt when you do a clean->build in XCode, or are there special steps required to get the framework to recompile?

    in reply to: Optimizing open ears for single word recognition #1015452
    woodyard
    Participant

    I finally had a chance to do more testing today and found something unexpected. I used the code from the sample app to dump the mic levels to the console while pocket sphinx is working.

    The typical patter was this: silence ( approx -100 DB ) followed by a peak of anywhere from -80 DB to -65 DB and then either a message from pocket sphinx saying “speech detected” followed by the hypothesis, etc. OR no message “speech detected” followed by no other messages from pocket sphinx.

    At approximately -76 DB and above the results were good, below -76 DB is where consistency started to drop off.

    So, to summarize the problem I’m seeing doesn’t seem to be the accuracy of the word identification, but rather the threshold for whatever causes pocket sphinx to generate a “speech detected” is higher than what I would like.

    I looked through the API documentation again but did not see the option to adjust that. Any suggestions appreciated.

    in reply to: Optimization for short utterances #10884
    woodyard
    Participant

    I’m doing something similar – what value would you recommend and what values are acceptable? The default is one correct? Can you use something like .5?

    in reply to: Pausing app while FliteController is speaking #10787
    woodyard
    Participant

    Thank you – that did the trick!

    in reply to: Pausing app while FliteController is speaking #10532
    woodyard
    Participant

    Sorry for the poor explanation – I had one foot out the dooor at the time.

    I’m writing an application to help young children with their literacy skills. The application shows them a word, and then they have six seconds to say the word correctly. If they say it correctly, the app says “Correct”. If they say it incorrectly, the app says the word correctly.

    So – the app uses all the OpenEars components!

    Anyway – the problem I’m trying to overcome is that currently, when the timer runs out and “correct” or the word is said the next word is shown and the timer for the enxt word is starting while the FliteController is in the process of saying “correct” or saying the word that was missed. I need the app to wait for FliteController to finish speaking, and THEN move on to the next word/timer.

    I’ve tried inserting a BOOL flag into fliteDidStartSpeaking and flitedDidFInishSpeaking and then writing a convenience method that calls fliteController then “waits” using a WHILE loop based on that Boolean value, but have not been successful using that approach.

    Is there a better way to accomplish this, and if not – perhaps I’ve just missed something. Here is my convenience method and my overrides for both flite methods:

    – (void) claraSay: (NSString *)message;
    {
    [self.fliteController say:message withVoice:kVoice];
    while ( self.fliteIsSpeaking ) {
    NSLog(@”Clara is waiting….”);
    }
    }

    – (void) fliteDidStartSpeaking
    {
    NSLog(@”Flite has started speaking”); // Log it.

    self.fliteIsSpeaking=TRUE;

    }

    – (void) fliteDidFinishSpeaking
    {

    NSLog(@”Flite has finished speaking”); // Log it.

    self.fliteIsSpeaking=FALSE;

    }

Viewing 6 posts - 1 through 6 (of 6 total)