Tagged: Immediate-recognition
| Author | Posts |
|---|---|
| Author | Posts |
| March 5, 2011 at 11:24 pm #3899 | |
|
teepusink |
Hi, Is there a method I can use to force openear to start recognition right away? E.g openear is now listening, then when I click a button, it starts recognition up to the point when I click that button. I tried suspendRecognition, but the problem is that it also stop the recognition. So in a way I want it to behave like suspendRecognition but still return me the recognized word before going to suspend mode. Thanks, |
| March 5, 2011 at 11:44 pm #3900 | |
|
Halle |
Hello teepusink, I don’t see a way to do that with OpenEars since it is really designed around continuous recognition (i.e., the important decision factor in its flow is perceived silence between statements, not a user-initiated UI interaction, and basically everything in the big loop in the continuous model is built around detecting that). But I think VocalKit would do this with no problem: http://github.com/KingOfBrian/VocalKit Maybe my suggestions in this thread will have some applicability to your question, not sure: http://www.politepix.com/forums/topic/how-might-i-go-about-triggering-recognition-on-demand Good luck, Halle |
| March 6, 2011 at 12:06 am #3901 | |
|
teepusink |
Thx Hall. Common scenario when someone is giving the app a try is that they will start talking. Then stop talking, but the app is still detecting speech. User thinks their speech isn’t detected and talk again and the result will be totally off. Will give ur suggestion from the other thread a spin an will post back if I find anything. Thanks, |
| March 6, 2011 at 7:48 am #3902 | |
|
Halle |
Hi teepusink, I can’t quite tell from your description whether the issue is that the user is getting confused due to not getting a UI cue that recognition of their statement is still in progress, or whether you are experiencing a bug in OpenEars where it isn’t detecting silences of more than a second, or whether the environmental noise level is too loud for the end of speech to be detected. Do you have the same issue if you use the sample app? Thanks, Halle |
| March 6, 2011 at 7:20 pm #3903 | |
|
teepusink |
Hi Halle, The app actually works well. It sometimes recognizing a different word from what the user said is a separate thing I want to post on the forum. It’s not really a bug with the sample app / app, but it’s more of confused expected app behavior. Especially when you have a room mate that likes to talk (I like my room mate tho). So the initial question I asked was to see if there is a way I can have more control on when to stop audio input and start recognition. I kinda get instantRecording + 1 second working now though. Here is what I did: Thanks, |
| March 6, 2011 at 9:20 pm #3904 | |
|
Halle |
Hi Tee, I think for your first question, using the new JSGF feature might be a good solution for you because you can create a JSGF grammar that has an entry “LEFT” without any variations on that, and that will mean that nothing will be recognized other than the single word “left” even if it is said multiple times or mixed in with other sounds. Then it just remains to be seen whether the single word “left” will be picked out of the noise by Pocketsphinx. There’s an example of a simple JSGF grammar in the sample app. What kind of input are you using to initiate your instantRecording + 1 approach? Does the user tap a button? |
| March 6, 2011 at 10:39 pm #3905 | |
|
teepusink |
Thanks Halle. I’ll take a look at the JSGF feature. Yes I have a button that initiate instantRecording + 1 approach. I also have an instantTimestamp within the loop so in case after you hold the button and release but you didn’t say anything, it will reset continousModel.instantRecording to FALSE. Thanks, |
| March 6, 2011 at 11:20 pm #3906 | |
|
Halle |
OK, sounds like you have it working for your requirements — any other questions? |
| March 7, 2011 at 12:15 am #3907 | |
|
teepusink |
I think I’m all set for now. You’ll sure hear back from me if I have other questions. |
| January 4, 2012 at 2:22 pm #8362 | |
|
itay |
Hi Guys I though about doing your trick and just put a flag (shouldStartRecognition) like so : if ((continuousListener->read_ts – timestamp) > (kSamplesPerSecond * kSecondsOfSilenceToDetect) || shouldStartRecognition ) { When the user click the button that he wants to start recognition I will change : Do you think it can cause problems on recognition ? Thank Itay |
| January 4, 2012 at 2:39 pm #8364 | |
|
Halle |
Do you mean problems with multithreading/the driver/other code, or is there a particular recognition issue you’re concerned about? Technically, it should cause a problem with recognition because you’re trying to shut off recognition :) . Regarding whether it will create structural weirdness with the behavior of the rest of the continuous model and its threads, I would expect it to not cause problems because the whole thing is written to accept arbitrary exits from the loop at any time so that incoming calls or audio route changes behave acceptably. The only way to know is to verify with some testing, but this is a hack that I’d expect to have a good chance of working well. |
| January 5, 2012 at 11:58 am #8367 | |
|
itay |
Well, I did some kind of a mix to try and fullfil both condition : So I did entered the shouldStartRecognition = true on my controller (see earlier post) – but I called the setter in a delay of 1 second from the moment the user clicked the button. e.g : After this I didn’t experience any issues with the last words. Thanks Halle |
| January 5, 2012 at 12:14 pm #8368 | |
|
Halle |
Sounds good! |
You must be logged in to reply to this topic.

OpenEars
Our Flying Friends