Author Topic: Stop after the first recognized command  (Read 1975 times)

jukejuke

  • Guest
Stop after the first recognized command
« on: April 04, 2018, 09:49:22 AM »
Hallo everyone! I registered fresh today and bought this awesome piece of software.

Now I am wondering is there a way to stop the recognition after a certain amount of time or when a command is recognized? The space I ususally use this software is noisy. TV shows running in the background, family talking.
Even with a headset it keeps picking up sounds and adds them to stack. Which seems like a small oversight and probably is more like that I don't know how to adjust that. I searched in "How do I" and "Issues" for several pages but couldn't find anything about it.
It seems to me that since a mic threshold doesn't exist it would be the easiest to add a timer? or that when a command is recognized that it stops recognizing if I want that option.

Thank you in advance!

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4759
  • RTFM
Re: Stop after the first recognized command
« Reply #1 on: April 04, 2018, 10:32:01 AM »
To stop listening after one command is a built-in option for the "Recognition Global Hotkey" setting(which you'll likely want to use anyway, rather than clicking the listening icon).

Click , click the "Hotkeys" tab, click "..." underneath "Recognition Global Hotkey", check "Enable keyboard global hotkey", press the key(or combination of keys) you'd like to use, click the radio button next to "Listen then stop listening after recognition completes", click "OK", then click "OK" again to save the setting.


Otherwise you can create a command that'll enable listening for a set time:
Code: [Select]
Start VoiceAttack listening
Pause 5 seconds
Stop VoiceAttack listening

jukejuke

  • Guest
Re: Stop after the first recognized command
« Reply #2 on: April 04, 2018, 03:02:33 PM »
Hey thank you for the fast response. That is definitely helpful to deal with the noise pick up. What I imagined though was more in terms of stopping the recognition itself if it goes for too long.
So basically I want it to definitely stop appending to the same recognizing stack after like 3 seconds of recognizing stuff because there is nothing I would say to it that is longer than that.
Like a force split for the recognition.

I got myself a noise gate now(AudioMeter Banana) to basically only react if words are said that are as loud as someone that is speaking right into the mic, which improved the recognition a lot.
I hoped for the above stated feature in the program.

Pfeil

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4759
  • RTFM
Re: Stop after the first recognized command
« Reply #3 on: April 05, 2018, 04:05:50 PM »
What I imagined though was more in terms of stopping the recognition itself if it goes for too long.
Ah, I actually encounter that issue every so often myself; There's no real "fix" for it that I know of.


I played around with the "{STATE_SPEECHACTIVE" token in a loop, but while it's possible to detect speech longer than 3 seconds, there's no way to stop the speech engine(within VoiceAttack at least).

Even if there were, using a timer like this would be problematic, as command phrases can be any length.


The minimum volume limit is an option, but that's not something that's built into the speech recognition engine as far as I'm aware, and modifying only the sound going into the engine without also affecting any other applications that use the microphone would be difficult.