我正在尝试将我的TextToSpeech
- 对象的语言设置为荷兰语。这是我的Android平板电脑的默认语言,应用程序将在该平板电脑上运行,当我记录Locale.getDefault()
时,我得到“nl_NL”,所以这是正确的。
我已经读过,对于TTS,您需要在使用Locale设置语言时提供ISO语言代码和ISO国家/地区代码。但问题是:当平板电脑没有互联网连接时,TTS似乎无法将语言设置为荷兰语。这是我设置语言的代码:
int result = tts.setLanguage(new Locale(Locale.getDefault().getISO3Language(),
Locale.getDefault().getISO3Country()));
// this equals to "nld","NLD"
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED)
{
tts.setLanguage(Locale.UK);
}else{
dutch = true;
}
如果没有Internet连接,语言始终设置为Locale.UK。通过Internet连接,它按预期工作,语言设置为荷兰语(我甚至不需要提供ISO标记,只需new Locale("nl_BE") or "nl_NL"
即可。)
此外,在调用TTS.speak
的代码中,我总是检查Dutch是否为true,然后为speak方法提供荷兰语字符串,否则提供英文字符串。
如何解决此问题,我可以将TextToSpeech语言设置为荷兰语而无需连接Internet?
编辑:对于遇到我的问题的其他人,请查看下面我的答案的已编辑部分。
答案 0 :(得分:1)
经过大量研究后,似乎与TTS一起安装的标准语言不包含荷兰语。
我使用方法isLanguageAvailable(Locale loc)
运行了一些测试,从而检查荷兰语等,似乎不支持荷兰语(返回值为LANG_NOT_SUPPORTED
)。
我必须找到另一个TTS客户端来满足我的需求或使用正确的消息播放.mp3文件(这可能有效,因为TTS必须发布的值是预定义的。)
一些帮助我的链接:
http://igordcard.blogspot.be/2014/02/changing-android-text-to-speech-tts.html
Missing languages in TTS android
How to check if a specific language data for Text to Speech(TTS) is installed on a device?
http://code.tutsplus.com/tutorials/android-sdk-using-the-text-to-speech-engine--mobile-8540
显示安装了哪些语言的图像:
编辑:在Google Play商店更新" Google TTS" -app后,可以使用荷兰语BECAME。如果您正在寻找荷兰语离线TTS并且您正在使用Google TTS,请将其更新为最新版本。
答案 1 :(得分:0)
尝试
tts.setLanguage(new Locale("nl", "NL"));