I have an activity that implements RecognitionListener
. To make it continuous, every time onEndOfSpeech()
I start the listener again:
speech.startListening(recognizerIntent);
But, it takes some time (around half a second) till it starts, so there is this half a second gap, where nothing is listening. Therefore, I miss words that were spoken in that time difference.
On the other hand, when I use Google's Voice input, to dictate messages instead of the keyboard - this time gap does not exist. Meaning - there is a solution.
What is it?
Thanks
One of the most important factors for improving voice recognition is to use a high-quality headset microphone that holds the microphone in a consistent position directly in front of your mouth; desktop-based microphones typically provide less desirable voice-recognition results because they don't remain consistently ...
Continuous speech recognition systems allow the user to talk to the system without stops and pauses. Continuous speech recognition systems can recognize more utterances than a command-and-control system.
You can activate this by going to Settings - Language and Input - Voice Input and touch the cog icon next to Enhanced Google Services. Choose "Offline Speech Recognition" and select the "All" tab to download your preferred language if it's not already installed.
I'll recommend using CMUSphinx to recognize speech continuously. To achieve continuous speech recognition using google speech recognition api, you might have to resort to a loop in a background service which will take too much resources and drains the device battery.
On the other hand, Pocketsphinx works really great. It's fast enough to spot a key phrase and recognize voice commands behind the lock screen without users touching their device. And it does all this offline. You can try the demo.
If you really want to use google's api, see this
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With