Tuesday, April 10, 2012

Android: Speech Recognition without using google server

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.

Source: Tips4all


  1. Pocketsphinx can run on Android. See


    See demo project


  2. As far as i know, speech recognition requires vast amounts of data for the analysis, and it is probably not suited for an offline application running on a phone.

  3. 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.

  4. 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.

  5. Windows mobile has an offline voice command, I believe with the same initiative an android version can be invented/built.

  6. I really hope this happens. My 4 year old HTC Diamond running Windows Mobile 6.0 has offline voice recognition. I may not be able to dictate to it like Froyo’s attempt (which is 50% accurate at the most in my experience) but it COULD call anyone in my contact list, tell me the time of my next appointment, callback, redial, etc – all without a single training session needed.

    Recording, compressing, uploading, transcribing, downloading then interpreting just seems dam clumsy to me.

    Additionally, the transcriber has no frame of reference as it doesn’t have access to my contact list so when I say “Roland McDaniels” and it hears “Ronald McDonald” it can’t check to see if I have a contact called that before settling on it.

    Very disappointed as I really want to go Android!

  7. 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.