我正在尝试将TextToSpeech
-object的语言设置为荷兰语。这是运行该应用程序的Android平板电脑的默认语言,并且在我登录时Locale.getDefault()
得到“ nl_NL”,所以这是正确的。
我已经读过,对于TTS,在使用语言环境设置语言时,您需要提供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,然后为语音方法提供Dutch字符串,否则提供English字符串。
如何解决此问题,以便可以在没有Internet连接的情况下将TextToSpeech语言设置为荷兰语?
编辑:对于其他遇到我的问题的人,请在下面查看我的答案的编辑部分。
经过大量研究,似乎TTS附带的标准语言不包含荷兰语。我使用该方法进行了一些测试isLanguageAvailable(Locale loc)
,从而检查了荷兰语等。似乎不支持荷兰语(返回值为LANG_NOT_SUPPORTED
)。
我将不得不找到另一个TTS客户端来满足我的需求,或者使用正确的消息播放.mp3-文件(这可以工作,因为TTS必须声明的值是预定义的)。
一些对我有帮助的链接:
http : //igordcard.blogspot.be/2014/02/changing-android-text-to-speech-tts.html
TTS android中缺少语言
如何检查“文本到语音”的特定语言数据(TTS)是否已安装在设备上?
http://code.tutsplus.com/tutorials/android-sdk-using-the-text-to-speech-engine--mobile-8540
并显示了安装了哪些语言的图像:
编辑:从Google Play商店更新“ Google TTS”应用后,可以使用荷兰语BECAME。如果您正在寻找荷兰的离线TTS,并且正在使用Google TTS,只需将其更新到最新版本即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句