Forum Replies Created
-
AuthorPosts
-
woodyardParticipant
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’,?
woodyardParticipantIt’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?
woodyardParticipantI 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.
woodyardParticipantI’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?
woodyardParticipantThank you – that did the trick!
woodyardParticipantSorry 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;
}
-
AuthorPosts