我正在尝试实现一个用不同语言读取文本的应用程序.令人惊讶的是,当我使用isLanguageAvailable(Locale loc)方法时,对于尚未下载的Google TTS列表中的语言,它返回true.当我调用speak()方法时,它们甚至被播放.我的结论是,这是因为它们是在线声音.
文档显示您可以通过Voice对象使用方法getFeatures()来了解语音是否在线.但是,Voice类是针对API> = 21实现的.对于API <21,在TextToSpeech类上还有一个getFeatures(Locale loc)方法,它应该返回一个具有不同特征描述的字符串数组.我在不同的引擎和语言环境中尝试了最后一种方法,我通常得到一个空数组.可能这是TTS开发人员可以填写或不填写的额外信息......
那么,我怎么知道tts-locale是否是API <21的在线版本?
android voice text-to-speech google-text-to-speech android-5.0-lollipop