【问题标题】:Certain locales not available in TTS--including Spanish某些语言环境在 TTS 中不可用 - 包括西班牙语
【发布时间】:2014-04-28 16:46:06
【问题描述】:

当我使用这条线为日语设置语言环境时,它工作得很好。

tts.setLanguage(Locale.JAPANESE);

当我替换法语、德语、意大利语和中文时,它也可以工作。

当我替换 SPANISH、RUSSIAN 或 HINDI 时,Eclipse 告诉我“SPANISH 无法解析或不是字段”[填写其他语言]。

我被告知 Android 确实提供了对这些语言的支持,那么我怎么可能找不到它们呢?

【问题讨论】:

    标签: java android text-to-speech


    【解决方案1】:

    根据documentation the Locale object 没有定义西班牙语的常量。您可以尝试使用这个(未测试):

    Locale locale = new Locale("es", "ES");
    tts.setLanguage(locale);
    

    但请记住这一点(也来自 Locale 文档):

    假设所有设备都具有相同的语言环境也是错误的 可用的。在美国销售的设备几乎肯定会支持 en_US 和 es_US,但不一定是任何具有相同语言的语言环境,但 不同的国家(例如 en_GB 或 es_ES),也没有任何语言环境 其他语言(例如 de_DE)。相反的可能是正确的 在欧洲销售的设备。

    【讨论】:

    • 我使用了这个线程中的一些代码巫术stackoverflow.com/questions/4872702/… Locale loc = new Locale("en"); Log.i("-------------",Arrays.toString(loc.getAvailableLocales()));获取支持的语言环境列表,其中 es_ES 就是其中之一。所以,我的问题可能出在其他地方。
    • 所以,我最终还是使用了你的建议,它适用于我所有的语言环境。非常感谢。
    • 更正:除中文外都可以,根据getAvailableLocales()的结果支持,但实际上不起作用。
    • 既不是 Locale("es", "ES") 也不是 Locale("esp", "ESP") 也不是 Locale("sp", "SP") 也不是 Locale("spa", "MEX “) ETC。这些不适用于 Android 目标 API 30 及以下版本上的 Locale 功能。我对未来的更新充满希望。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    相关资源
    最近更新 更多