i installed https://play.google.com/store/apps/details?id=com.ivona.tts and all their voices. How can i programmatically get list of all installed voices from ivona tts?
Is there any command for this in android SDK 8?
Can i programmatically change pico tts for ivona tts? Not for whole phone just for my program?
To get list of installed TTS engines you should get uid of com.ivona.tts package:
http://developer.android.com/reference/android/content/pm/PackageManager.html#getApplicationInfo(java.lang.String,%20int%29
and then ask PackageManager for all applications that share this uid:
http://developer.android.com/reference/android/content/pm/PackageManager.html#getPackagesForUid(int%29
To change TTS engine use this method:
http://developer.android.com/reference/android/speech/tts/TextToSpeech.html#setEngineByPackageName(java.lang.String%29
(Please note, that this method is deprecated and on newer API levels you should use the following constructor:
http://developer.android.com/reference/android/speech/tts/TextToSpeech.html#TextToSpeech(android.content.Context,%20android.speech.tts.TextToSpeech.OnInitListener,%20java.lang.String%29)
Finally to set specific Ivona voice you must parse language/country/name from voice package name and pass it to:
http://developer.android.com/reference/android/speech/tts/TextToSpeech.html#setLanguage(java.util.Locale%29
eg. to choose com.ivona.tts.voicebeta.eng.gbr.amy you should use:
Here’s sample Activity that prints available voices to logcat: