Voice recognition hit and miss

Hey all,
I am so grateful for MIT App inventor.
But is it me, or are others also finding the voice recognition is pretty hit or miss?
I have an app. It works fine - sometimes.
I'll push the button to Listen, say, "Hello" and it responds.
So the programming is good.
But sometimes it doesn't recognize what I am saying, even a simple Hello.
I've tried on 3 different phones.
Google voice to text is working - it types out what I am saying - but the app doesn't understand it. That doesn't make sense to me.

So my question is - is this normal/ are others experiencing this?

If not, why?
I have about 1100 blocks, doing other things. Maybe that is a factor?

Thanks!

You might look at HOW TO: Program the native SpeechRecognizer for Continuous Dictation and to do things

the tutorial provides some notes on

How to avoid mistakes

  • Experiment with the various Parrot option choices until you find something the fits your speaking/dictation style. - A secret to making a Speech Recognizer work is to speak in a strong, steady, clear voice. Even then, the Parrot recognizer WILL make mistakes.
  • I show one way to delete words Parrot misspeaks…type the word that must be eliminated, press Delete or use the Delete Last of to delete the last spoken text.
  • There are a few grayed out Blocks of code at the top of the AfterGettingText event handler. Restore the Blocks and these or similar blocks can be used when the SpeechRecognizer is stubborn. Yes, sometimes it refuses to provide the word you speak. For example, if you do not want to record 2 when you say 2 but to print out two or to respond with for when it thinks you say four, you make it obey when it mis-understands your pronunciation.

Yes.

Keep in mind, Google provides speech recognition with code that works only on the device and code that uses enhancement using WIFI or your phones DATA connection. Performance varies depending which 'version' your device decides to use at the moment.

Your coding can affect processing time of what you speak.

An AI provides it's 2 cents:

Speech recognizers often produce unexpected results due to factors like background noise, accents, and the use of words not in their lexicon. Other issues include low-quality microphones, variations in speech patterns, and the system's inability to correctly interpret context or slang. Technical problems such as network connectivity issues or software errors can also affect accuracy.

Common reasons for poor performance

  • Background noise:

Ambient sounds like traffic, conversations, or even a fan can interfere with the microphone's ability to pick up clear speech.

  • Accents and dialects:

Differences in pronunciation and regional speech patterns can be difficult for a system to interpret correctly.

  • Lack of context:

Speech recognition systems may struggle with semantic errors or interpreting the correct meaning of a word or phrase, especially if it's ambiguous or outside a typical vocabulary.

  • Vocabulary limitations:

The system relies on a built-in lexicon. If you use a word that is not in its dictionary, it may misinterpret it or fail to recognize it at all.

  • Audio quality:

Poor microphone quality, low sample rates, or audio artifacts from the hardware can degrade the input signal, making it harder to process accurately.

  • Technical issues:

The system may be experiencing temporary problems like network connectivity issues or server unavailability, which can prevent it from returning correct results.

How to improve accuracy

  • Reduce background noise:

Speak in a quiet environment, use a high-quality microphone, and minimize other sound sources.

  • Speak clearly:

Enunciate your words and try to maintain a consistent speaking pace.

  • Use the correct lexicon:

For some applications, you may be able to add custom words or phrases to the system's dictionary.

  • Check microphone access:

Ensure the application has permission to access your microphone in your system's settings

Thank you so much, that's all very helpful.
I don't think my edit had posted? --

Does that make sense?
TIA

Are you using the SpeechRecognizer.AfterGettingText Block to tell you app what you want to do. You don't share your code, so we can only guess what you expect to happen as soon as you stop speaking. The code to tell your app what to do when you speak a command goes in that event handler. :wink:

The tutorial shows one way to do get the app to do something with your captured text. You probably need some If..then..else statements.

Yes, I have that. I can post my code later if that would help.
My take away is that is Should be working - I'll look at my code.