Forum Replies Created
OK, it seems the issue has been resolved while I was configuring the pocketsphinx. You can now close this thread.
I got reasonable behaviour from the sample app, then copy pasting its configuration to my app solved the problem.
It might be that at the time I opened this thread, there was quite an environmental noise and vadThreshold probably couldn’t make up for it. Now, everything seems fine and functional. Thank you.
Bah, you are right. This post has gone too far about testing high-values for soundsToDetectSilence, whereas my issue is different. I guess I lost focus of my original problem while tinkering with that property.
You gave the answer I was expecting for getting seemingly random wait-times due to the noise which cancels the “silence period”. That’s why I had set the vadThreshold pretty high, but I guess it still gets some noise as speech.
OK, I’m gonna add RapidEarsDemo to the sample app with minimal changes, and replicate my issue there to see if it persists. In any case, I am going to share the results I obtained in my next post here.
Before posting here, I re-downloaded all the frameworks, but that did not solve it.
I’m having the problem with the RealTime Listener in my app, and also when I switch to offline listener I experience weird behaviour. I can duplicate the same weird behaviour on offline listener while using the sample app as well.
The only thing I added to the viewcontroller is the following:
[OEPocketsphinxController sharedInstance].secondsOfSilenceToDetect = 7.0f;
[OEPocketsphinxController sharedInstance].vadThreshold = 3.0f; //It’s noisy here :)
Ok, So I counted the seconds after I stop speaking and the app logs “Pocketsphinx detected a second of silence, concluding an utterance”. In some cases, no hypotheses were returned as well. Here are the timings I got:
7.0f -> 21 seconds (no hypothesis)
10.0f -> ~1 second
1.0f -> ~1 second
3.0f -> 3 seconds, 5 seconds, 7 seconds, 12 seconds changes a lot.
2.0f -> 2 seconds, 4 seconds, 7 seconds, 11 seconds changes a lot.
4.0f -> 9 seconds, 14 seconds, 22 seconds (no hypo. when +20)
0.5f -> less than 1 second
0.1f -> so quick that only the first word is recognized
0.9f -> 1-2 seconds
1.1f -> 1-2 seconds
1.6f -> changes between 2 seconds to 5 seconds
100.0f-> ~1 second
9.0f -> 10 seconds to 20+ seconds with no output when 20+.
It appears to me that the secondsOfSilence property works for values lesser than 1 second, and somehow increases much more than needed when it’s greater than 1. Behaviour is not consistent.
Would you like me to add RapidEarsDemo to the sample app and try editing soundsToDetect property? Should RapidEarsDetectedFinishedSpeech event get affected with this property? I don’t think its about the plugin because at this point I’m not tingling with it. The plugin just starts the generateLanguageModel function in objective-c side, which then pocketsphinx starts listening if no error is produced while language model creation. The timings I obtain are from Xcode console directly, so there’s no plugin interference yet.
That solved it thank you
An update on the situation:
While doing offline recognition, secondsOfSilenceToDetect actually partially works. 4.0f seconds results in 20seconds of waiting after pause to come up with a hypothesis. Is the value multiplied with something else on the inside?
On the other-hand, the RapidEars’ finished speech method does not affected by this property. How can I modify that?
I think this post belongs to “plugins” section in the forums.