just not to miss out, is there a way to run Google speech locally without having to go to Google server-- without even an internet connection?
Google speech API, Using Google Speech API, Android: Speech Recognition without using google server and several other resources say/hint "no".
this will be for voice to text. my input is the speech from the microphone, output is that speech in text.
Note: i'm aware of Sphinx among some other speech recognizers. i'll bring it up in another Q. this Q is out of interest in Google-speech for performance reasons.
TIA.
//---------------------------------------
EDIT: i'm looking for something that also runs on desktop-- Windows and not just on Android.
The user can download an offline speech recognition package, jellybean (API 16) only. Currently at least 9% of devices are less than API 16 and therefore will not be compatible with your application. In addition to the 9% some devices do not have offline speech recognition enabled due to hardware constraints.
Please note that offline speech recognition is likely to be a battery and processor expensive feature.
Related
I tried using RecognizerIntent to use speech recognition in my android app. But the target device doesn't have Google Voice search installed. Is there any other way I can use speech recognition in an Android device that doesn't have Google Voice installed.
You can try using others libraries, take a look to the next post Can CMU Sphinx be set up to recognize ~200 words. I think that maybe is you are looking for.
You probably first should detect if the user has installed Voice Search on his smartphone. If it doesn't, then redirect it to Google Play to download it.
Just a query
I made an voice command app for Android 2.3.x.
This app takes voice commands and converts into text and perform the required action.
Now I have device having jelly bean.
As jelly Bean introduces a new conversational text-to-speech voice in US English, available as both a network engine and an embedded engine via the TTS API.
If I have build this app with jelly bean and install in new device, will it work fine ??
will it uses offline voice-to-text automatically.
Please reply
As per my knowledge android uses two different APIs for voice.
1.Voice typing i.e. key on keyboard
2.Voice Recognition i.e.Typing anywhere
Voice typing is enabled offline and voice recognition is not (for 4.1 JellyBean).
This is why the key in the keyboard works offline, but nowhere else does.
For more info read this.
Android 4.1 includes offline voice typing. You can see this when you click the microphone on the pop-up keyboard, it still works if you have no network connection. However, it looks like the RecognizerIntent API still ends up requiring a network connection when you want to do speech recognition from your app.
Is there an API for accessing new the offline voice typing feature in Android from my app?
Android uses two different APIs for voice: voice typing (key on the keyboard) and voice recognition (everywhere else).
Voice typing is enabled offline and voice recognition is not (for 4.1 JellyBean).
This is why the key in the keyboard works offline, but nowhere else does.
For some reason Google decided to make these two separate APIs.
See here for more info on voice typing:
http://android-developers.blogspot.com/2011/12/add-voice-typing-to-your-ime.html
I have already gone through the sample code present in the Android SDK. It tells that you should have voice recognition APK in your device. I tried a lot but could not find any apk. Can anyone suggest which voice recognition APK to install to get voice recognition. My device is a Samsung Galaxy.
Update:
According to this article, Google Voice Search is what you actually need.
The Android SDK makes it easy to integrate speech input directly into your own application—just copy and paste from this sample application to get started. Android is an open platform, so your application can potentially make use of any speech recognition service on the device that's registered to receive a RecognizerIntent. Google's Voice Search application, which is pre-installed on many Android devices, responds to a RecognizerIntent by displaying the "Speak now" dialog and streaming audio to Google's servers—the same servers used when a user taps the microphone button on the search widget or the voice-enabled keyboard. (You can check if Voice Search is installed in Settings ➝ Applications ➝ Manage applications.)
I've used the sample of STT without problems. How they said previously, you have to download it from the Market.
Regards
I want to develop an Speech recognizer in android, which should work in offline. As the android's built-in speech recognizer uses google server which needs internet, i want an alternative which works in the absence of internet.
Please suggest me some way to achieve the above feature.
We used to recommend pocketsphinx, but now more advanced technology based on Kaldi toolkit is available.
The demo is here: Vosk API, you can simply load it in Android Studio and run. Full disclosure: I am the primary author of Vosk.
It supports speech recognition in 7 major languages - English, Chinese, Spanish, Portuguese, German, French and Russian.
If the speech recognizer has limited vocabulary (as in a simple voice user interface) and is limited few samples - it maybe possible. Applications such as Transcription is not a likely task to be performed on Android (in offline mode). Also DSP is required for Voice Recognition ... A limited vocabulary and limited to very few samples might be your best bet.
If you really want to invest time and manpower for your goal, look at the Java-Project Java Speech API 2.0 (JSR 113).
It is used on "normal" mobile phones for voice commands and works offline.
Unfortunately, the project is discontinued.
You can download Google voices for later use.
From you mobile -> Setting -> “Language and Input” -> "Voice Search" -> "Download offline speech recognition" -> Choose the language pack .
Or you can use other programs, such as
Dragon Mobile Assistant
https://play.google.com/store/apps/details?id=com.nuance.balerion&hl=en
You're not going to be happy with this workaround but here goes: Record the speech & store it for later. When an internet connection is available, connect to the internet, playback the recorded speech and convert it to text.
Hey, it's the easiest way I can think of and might work for some applications, like dictation and memos.