Сначала проверьте, установлен ли API-интерфейс TSS на устройстве эмулятора, используя следующую команду.
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
mTts.isLanguageAvailable(Locale.INDIA)); //try Locale.INDIA or Locale.INDIAN_ENGLISH or Locale.HINDI as I have not used Indian languages or Indian English dialect in it before
, который вернет TextToSpeech.LANG_COUNTRY_AVAILABLE
, чтобы указать, что настройки для такого языка установлены и доступны. Затем используйте следующее для теста.
String myText1 = "Did you sleep well?";
String myText2 = "I hope so, because it's time to wake up.";
mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, null);
mTts.speak(myText2, TextToSpeech.QUEUE_ADD, null);
Более подробная информация доступна здесь
РЕДАКТИРОВАТЬ Чтобы проверить, доступен ли язык на вашем телефоне, используйте getAvailableLocales()
следующим образом
Locale loc = new Locale("en");
Log.i("-------------",Arrays.toString(loc.getAvailableLocales()));
В результатах журнала должны отображаться результаты
Языковые коды представляют собой двухбуквенные строчные коды языка ISO (например, «en»), как определено в ISO 639-1. Коды стран представляют собой двухбуквенные прописные коды стран ИСО (например, «США»), как определено в ИСО 3166-1.