2010-08-26 76 views
4

我正在玩Android TTS引擎。我试图用西班牙语从墨西哥发言,而不是从西班牙发言。Android TTS语言

我尝试过几种组合的语言代码/国家代码,但是我一直没能从西班牙获得西班牙语的任何东西。这里是我的代码目前

loc = new Locale("es", "MEX"); 
myTts.setLanguage(loc); 
say("Hello"); 

我也试过( “ES”, “US”),( “ES”, “LA”),( “水疗”, “US”),( “水疗” ,“MEX”),我可以想到它的每个组合都显示在日志中:

TtsEngine :: setLanguage找到匹配语言(Spa)但不匹配国家(MEX)。

装ES-ES成功

我可以离开我的应用程序,并打开了TTS服务扩展。如果我将语言设置为西班牙语[西班牙语]或西班牙语 - 拉丁美洲语言。无论哪种方式,当我点击“听预览”时,我会得到预期的“Hola”。但是从我的应用程序中,我得到了“Heyyo”而不是“Hola”。任何人都可以看到我做错了什么来设置我的语言?

回答

0

如果需要2个字母或3个字母的国家/地区代码,这有点令人困惑。 Locale文档说2字母,因此它将是sp-MX,但TTS doc显示了一个带有3个字母代码的示例,因此spa-MEX将是正确的。

您使用的是什么设备/ sdk版本?如果两者都不起作用,可能是因为您的设备不支持西班牙语 - 墨西哥语。 TTS doc的第一部分显示如何检查languge特定资源,如果它们不存在,则下载它们。

+0

我在运行2.2的Nexus One和运行1.6的Mytouch上测试过。该应用程序构建到SDK 1.6版。我只用两个和三个字母代码尝试了相同的结果。 – Tim 2010-08-26 18:59:47

+0

您是否尝试下载特定于语言的资源? – 2010-08-26 19:39:42

4

我已经使用下面的代码,它在西班牙语中工作正常。

Locale locSpanish = new Locale("spa", "MEX"); 
tts.setLanguage(locSpanish); 
tts.speak(text, TextToSpeech.QUEUE_ADD, null); 
+0

非常适合我......谢谢 – 2014-10-15 04:57:02

+0

很棒的答案!它也适用于我! – 2017-07-16 12:32:39