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.
Related
I am a deaf software developer and have developed the app that convert voice to text using speech recognition api (requires internet access) but it's not a continuous functionality. I want to make a app for both deaf and hard of hearing people like Innocaption or Rogervoice that is designed for users residing in USA. Can you tell me where I can find a technology that may help me develop a captioning phone app for android and maybe iOS? Thanks in advance.
I have an android application that uses the Microsoft band 2's sensors and displays the data processed.
The app works fine, I just want to add voice commands to the app via the microphone of the band. Is it possible?
I am using Microsoft Cognitive Services, the Speech Recognition Service to get the voice command, transform it to text then process it. I know that this API works fine with the android microphone, but I would like to know if it is possible to use the band's mic or maybe integrate Cortana.
Thanks.
Access to the microphone of the Band is not currently supported by Microsoft's SDK. But Band 2 does work with Cortana on Android. So, while I am not familiar with what Cortana for Android's capabilities are, your best bet is likely to see if there is a way to work with that application in some way.
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.
I have just acquired an Android phone recently... wonderful stuff. Starting to look at the OS guts and how to program the thing.
The voice-recognition-for-dictation is good too... given that this is an open-source OS, is there any way of harnessing the Android-Google speech recognition? My current understanding is that the voice trace has to be sent to the Google servers to be processed, i.e. the software is not on the machine. But I may be wrong!
Either way, does anybody have any idea whether such harnessing for one's own apps (on Android or another OS on a full-size 'puter, for example) is possible?
If you are talking about using voice recognition in your code somehow, then you can use it with the help of SpeechRecognizer class(http://developer.android.com/reference/android/speech/SpeechRecognizer.html) and RecognizerIntent.
But you can only use the currently existing functionality to some extent only.
About the confusion as to whether it lies in device or not, try using your Voice Recognition after turning off internet on your phone. It wont work.
You can also look into API Demos for some example:
sdk\samples\android-10\ApiDemos\src\com\example\android\apis\app\VoiceRecognition.java
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.