gpt4 book ai didi

java - Android 上 TTS 的可用语言

转载 作者:行者123 更新时间:2023-12-02 04:19:09 26 4
gpt4 key购买 nike

我正在尝试使用 isLanguageAvailable() 检查某种语言是否可用于 TTS。该方法可能的返回值如下。

LANG_AVAILABLE

LANG_COUNTRY_AVAILABLE

LANG_COUNTRY_VAR_AVAILABLE

LANG_MISSING_DATA

LANG_NOT_SUPPORTED

很容易理解,我不必关心最后两个的名字。但即使在阅读了解释之后,我真的很困惑其他人的意思here .

public static final int LANG_AVAILABLE

Denotes the language is available for the language by the locale, but not the country and variant.

public static final int LANG_COUNTRY_AVAILABLE

Denotes the language is available for the language and country specified by the locale, but not the variant.

public static final int LANG_COUNTRY_VAR_AVAILABLE

Denotes the language is available exactly as specified by the locale.

这是什么意思?所有三个都可用于 TTS?

我不明白“按语言环境,但不按国家和变体”这句话。

我正在使用类似这样的代码测试 TTS。

for( Locale each : Locale.getAvailableLocales() )
if( TextToSpeech.LANG_AVAILABLE == myTTS.isLanguageAvailable(each)
&& SOME_OTHER_ADDITIONAL_CONDITIONS ) {
myTTS.setLanguage(each);
break;
}

如您所见,我只添加了一个常量 LANG_AVAILABLE。

为了以防万一,我还需要其他两个常量吗?

最佳答案

嗯,正如您在这里看到的 ( http://developer.android.com/reference/java/util/Locale.html ),有一个名为 en(英语)的语言环境,还有 en_GB 和 en_US,因此英语是基本语言环境,GB 和 US 指定语言环境的国家/地区。如果您查看语言环境的三参数构造函数,还会发现一个名为“variant”的参数。我猜测可能有类似 en_US_southern 的内容,而 Southern 是美式英语的变体。

要回答您的问题,如果您只想查看 TTS 是否讲某种语言(无论国家/地区或方言如何),您可以检查myTTS.isLanguageAvailable(each) >= 0 因为这将检查所有三个可能的“成功”结果。

关于java - Android 上 TTS 的可用语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32982042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com