开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜