如何获取所有可用的英语TTS语言和所有可用的西班牙语TTS语言的列表?我想做的是让用户选择使用哪种英语语音和哪种西班牙语语音。
答案 0 :(得分:0)
我有一个有效的解决方案。我希望这可以帮助任何有类似问题的人。
Locale[] locales = Locale.getAvailableLocales();
List<Locale> localeListEnglish = new ArrayList<Locale>();
List<Locale> localeListSpanish = new ArrayList<Locale>();
for (Locale locale : locales)
{
if (tts.isLanguageAvailable(locale) == TextToSpeech.LANG_AVAILABLE)
{
if (locale.getLanguage().equals("en"))
localeListEnglish.add(locale);
else if (locale.getLanguage().equals("es"))
localeListSpanish.add(locale);
}
}
String message = new String("");
for (int i = 0; i < localeListEnglish.size(); i++)
message += localeListEnglish.get(i) + "\n";
for (int i = 0; i < localeListSpanish.size(); i++)
message += localeListSpanish.get(i) + "\n";
Log.i("debug", message);