java - Android - TTS 将语言设置为 Locale.getDefault 没有互联网不可能吗?

标签 java android locale text-to-speech

我正在尝试将我的 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") 或 "nl_NL" 即可).

在我的代码中,当 TTS.speak 被调用时,我总是检查荷兰语是否为真,然后为 speak 方法提供荷兰语字符串,否则提供英语字符串。

如何解决这个问题,我可以在没有互联网连接的情况下将 TextToSpeech 语言设置为荷兰语?

编辑:对于遇到我的问题的其他人,请查看下面我的答案的编辑部分。

最佳答案

经过大量研究,似乎随 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

以及显示安装了哪些语言的图像:
TextToSpeech standard installed languages

编辑:从 Google Play 商店更新“Google TTS”应用后,荷兰语 BECAME 可用。如果您正在寻找荷兰语离线 TTS 并且您使用的是 Google TTS,只需将其更新到最新版本即可。

关于java - Android - TTS 将语言设置为 Locale.getDefault 没有互联网不可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28765546/

相关文章:

java - 无法在基于PC的Java服务器上运行我的android客户端

android - 如何传递ListView中的值?

java - 单击按钮时显示并启动带有绘制动画的 JPanel

java - 在父类(super class)中强制转换 protected 对象时如何摆脱警告?

java - Java中数据和文本的旋转坐标平面

java - Fragment 中的 ViewPager 和 TabLayout。 setAdapter 对空对象引用

vba - 如何更改格式化日期的语言环境?

javascript - 在 JavaScript 中反转 Date.toLocaleString 转换的 native 方法?

javascript - 删除字符串数组中的重音符号

java - 从 CellEditorListener 获取已编辑的 TreeNode