Android: Speech Recognition without using google server

AndroidSpeech RecognitionOffline

Android Problem Overview


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.

Android Solutions


Solution 1 - Android

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.

Solution 2 - Android

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.

Solution 3 - Android

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.

Solution 4 - Android

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

Solution 5 - Android

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSwathi EPView Question on Stackoverflow
Solution 1 - AndroidNikolay ShmyrevView Answer on Stackoverflow
Solution 2 - AndroidAbhiView Answer on Stackoverflow
Solution 3 - AndroidThrawn80View Answer on Stackoverflow
Solution 4 - AndroidskanView Answer on Stackoverflow
Solution 5 - AndroidMikeView Answer on Stackoverflow