Android TTS Languages
I am playing with the Android TTS engine. I am trying to set it to speak in Spanish from Mexico, rather than from Spain.
I have tried several combination's of language code / country code but I have not been able to get anything by Spanish from Spain. Here is my code currently
loc = new Locale("es", "MEX");
myTts.setLanguage(loc);
say("Hello");
I have also tried ("es","US"), ("es","LA"), ("spa","US"), ("spa","MEX") with every combination that I can think of it is showing me this in the log:
TtsEngine::setLanguage found matching language(spa) but not matching country(MEX).
loaded es-ES successfully
I can exit my app and open up the TTS Service Extended.开发者_如何学Go If I set the language to either Spanish[es] or Spanish-Latin America. Either way when I hit 'listen to preview' I get "Hola" which is expected. But from my application I get "Heyyo" instead of "Hola". Can anyone see what I am doing incorrectly to set my language?
I have used the following code and it is working fine in Spanish.
Locale locSpanish = new Locale("spa", "MEX");
tts.setLanguage(locSpanish);
tts.speak(text, TextToSpeech.QUEUE_ADD, null);
I've not used TTS on Android yet so I don't know whether this is relevant, but the Locale constructor expects a 2-letter country code and the ISO country code for Mexico is MX.
It is a bit confusing if it wants the 2 letter or 3 letter country codes. The Locale documentation says 2 letter, thus it would be sp-MX, but the TTS doc shows an example with 3 letter codes, thus spa-MEX would be the correct.
What device/sdk version are you using? If neither work, it might be because your device does not support spanish-mexico. The first section of the TTS doc shows how to go about checking for the languge specific resources, and downloading them if they aren't present.
精彩评论