我正在使用 Android 的 TTS(使用 Google 的引擎),我对设置和语言支持感到很困惑。这是我检测语言是否可用的方式:
if (tts.isLanguageAvailable(currentLocale) >= TextToSpeech.LANG_AVAILABLE) {
ttsAvailable = true;
tts.setLanguage(currentLocale);
tts.setOnUtteranceProgressListener(new VPUtteranceProgressListener());
}
效果很好。事实上,它的效果比预期的要好。默认的谷歌引擎并没有说它有荷兰语语音(在设置 > 输入 > 文本到语音转换中找到),但引擎声称它可用并且实际上也说荷兰语。 Google 是不是默默地添加了 TTS 语音,而不是在设置中打开它们?
最佳答案
我没有 50 的评论评论,所以我会在这里回答。
一个简单的解释可能是,当发布 Android 固件时,它倾向于针对特定区域,例如欧洲。因此,欧洲固件可能在固件中内置了几乎所有的西方语言,以及一些或所有东欧语言。
但是,TTS 是固件中的一项“服务”,巧妙地包装在应用程序中,并带有一些支持 Java/Android 类。由于它是一项“服务”,因此它可以与目前通过 TTS 支持的所有或尽可能多的语言 bundle 在一起。
因此,在固件和固件中包含的“服务”之间,您总是会在语言支持方面有所不同。
我希望上面的解释是有道理的。
更新 1:
关于“荷兰语不在此列表中,但引擎确实支持它并说荷兰语”,这可能是疏忽,或者在软件质量保证方面缺乏尽职调查,由Google 或 Android 设备制造商,或两者。因此,即使未列出荷兰语,您仍然可以调用语言环境并在 TTS 中使用它。也许,您需要向 Google 记录此问题。也许他们可以进一步阐明这个问题。
关于Android TTS 提供的语言比设置中提供的语言多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23059378/