在Android上,当使用将Google文本转换为语音引擎的TextToSpeech实例时,似乎isLanguageAvailable()方法不可靠。
之所以这样说,是因为在许多情况下,此方法将返回“成功”(0、1,或2),但是随后的talk()命令只会导致静音。
我正在测试的情况是具有API 23的Samsung S5。它处于飞行模式(无网络)。
我认为原因至少部分是因为没有网络,因此它既不能下载和安装新语音,也不能使用基于云的语音。
但是isLanguageAvailable()不应该简单地返回false -不可用吗?
假设没有网络,我应该如何检查某个区域设置和/或语音是否“可以说”?
我能想到的唯一方法是在TextToSpeech实例上设置一个utteranceProgressListener,发送“ ...”之类的“测试”发音并测试错误...但这似乎非常不令人满意!
如果有一种方法可以检查已安装/已嵌入/已准备好语音的语音,那就太好了。