我正在使用Android的TTS(使用Google的引擎),我对设置和语言支持感到很困惑。这就是我检测语言是否可用的方法:
if (tts.isLanguageAvailable(currentLocale) >= TextToSpeech.LANG_AVAILABLE) {
ttsAvailable = true;
tts.setLanguage(currentLocale);
tts.setOnUtteranceProgressListener(new VPUtteranceProgressListener());
}
工作正常。事实上,它的效果比预期的要好。默认的Google引擎并未说它具有荷兰语语音(如设置>输入>文字转语音中所示),但引擎声称它可用并且实际上也说荷兰语。谷歌是否默默地添加TTS语音而不是将它们打开到设置中?
答案 0 :(得分:1)
我没有50条评论的声誉,所以我会在这里回答。
一个简单的解释可能是,当发布Android固件时,它往往会针对某个特定区域,比如欧洲。因此,欧洲固件可能几乎包含所有西方语言,以及固件中内置的一些或所有东欧语言。
然而,TTS是一项"服务"在固件中,整齐地包装在应用程序中,包含一些支持Java / Android的类。由于它是一个"服务",它可以与当前通过TTS支持的所有语言或尽可能多的语言捆绑在一起。
因此,您将始终在固件和服务之间的语言支持方面获得这种差异"包含在固件中。
我希望上面的解释是有道理的。
更新1:
关于"荷兰人不在此列表中,但引擎确实支持它并说荷兰语" ,这可能是一种疏忽,或者缺乏对软件的尽职调查由Google或Android设备制造商制作的质量保证,或两者兼而有之。因此,即使未列出荷兰语,您仍然可以调用语言环境并在TTS中使用它。也许,您需要将此问题记录到Google。也许他们可以进一步了解这件事。