Android TTS语言

时间:2010-08-26 16:10:38

标签: android text-to-speech

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

我已经尝试了几种语言代码/国家代码的组合,但我无法从西班牙获得西班牙语的任何内容。这是我目前的代码

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

我也试过(“es”,“US”),(“es”,“LA”),(“spa”,“US”),(“spa”,“MEX”)与每个组合我能想到它在日志中显示了这个:

TtsEngine :: setLanguage找到了匹配的语言(spa),但找不到匹配的国家/地区(MEX)。

成功加载es-ES

我可以退出我的应用并打开TTS服务扩展。如果我将语言设置为西班牙语[西班牙语]或西班牙语 - 拉丁语。无论哪种方式,当我点击'听预览'我得到“Hola”这是预期的。但是根据我的申请,我得到了“Heyyo”而不是“Hola”。任何人都能看到我错误地设置我的语言吗?

3 个答案:

答案 0 :(得分:6)

我使用了以下代码,它在西班牙语中运行良好。

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

答案 1 :(得分:0)

我还没有在Android上使用TTS,所以我不知道这是否相关,但Locale constructor需要2个字母的国家/地区代码,而the ISO country code for Mexico是MX。

答案 2 :(得分:0)

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

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