I release an app for people with disabilities to help them speak when they can't use their voice. I use android.speech.tts.TextToSpeech to generate speech in my app Android (Google and also Amazon), but it looks like Amazon is now blocking access to the speech synthesis engine in its latest version of FireOS (testing on a Kindle Fire 7 2022).
android.speech.tts.TextToSpeech => getVoices
now returns an empty list, where it didn't with prior versions of FireOS. I'd have given up completely, but the eSpeak app (com.reecedunn.espeak) when side-loaded shows the default OS engine ("English (United States.salli)") and can synthesize speech. That app hasn't been updated since 2015 so maybe it's just a legacy quirk, but since Amazon also doesn't seem to allow third-party TTS engines in their AppStore, I'm hitting a bit of a wall and looking for anything. The workaround is to use eSpeak, which is not nearly as good at the voices Amazon already has installed on the device. Has anyone else run into this, or have ideas what to try?
I'm trying to let the user select the accent of TextToSpeech (British, American) in my app. But the method isLanguageAvailable always returns the code 1 (LANG_COUNTRY_AVAILABLE) for Locale.US and Locale.UK even when one of the language data is not available. I have tried it on different devices and different situations but it doesn't have an stable result and I wanna know if there is any other way to understand an specific locale is installed on a device (Considering the fact that my min API version is 16 I can not use getAvailableLanguages)
===UPDATE====
So far I have figured that apparently the concept of Language availability and Language voices are different. Apparently a language can be available without any voice data (which is funny btw). But even in that case I wanna know if there is any voice available for a language in API16
Good day Sir I've been using Mobile Vision API to detect text using an Android phone camera but based on its documentation it only accepts Latin based languages do you know any API that supports real time text recognition as well as support for different languages like traditional Chinese, Japanese, etc. Thanks in advance
This one supports Real-Time recognition for other languages: http://rtrsdk.com However, Chinese and Japanese are only available in paid version.
Disclaimer: I work for ABBYY
I have to develop an android app for Japan which has to use Text to Speech engine (Japnese TTS). When an android phone is sold in Japnese market are the users provided with a default Text to Speech engine in their language ?
I know they can buy a TTS engine from market and programatically I have to place checks of TTS engine existence
but I need to know if I can expect the engine installed by default on MOST OF THE PHONES I have to make a feasibility decision based on this
Thanks,
I've used three different Android phones from NTT Docomo, and they all had both English and Japanese TTS installed by default. The few Androids on AU I saw came with it also. I don't know for sure about SoftBank, but I'd wager they are the same.
For the record, I had an HT-03A(HTC Magic), Galaxy S, and Galaxy S2 while living there.
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.