相关疑难解决方法(0)

Android TTS检查支持的区域设置是否缺少/未下载语音数据

我正在使用Android的TextToSpeech类.一切正常.但是,有些语言/语言环境默认情况下未安装但由TTS引擎支持,我无法捕获丢失语音数据的状态.

在互联网开启的情况下,当我尝试将语言设置为尚未下载语音数据的新语言环境时,它只需下载语音数据并正常/成功地执行说话方法.

但是,在关闭互联网的情况下,当我尝试将语言设置为尚未下载其语音数据的新语言环境时,它会尝试下载语音数据.但是没有互联网,它只是在所选语言环境的"语言和输入"下的"TTS语音数据"设置屏幕上显示"下载",没有任何进展.正如预期的那样,由于未下载语音数据,因此说话方法不起作用.当发生这种情况时,我认为TTS方法setLanguage/isLanguageAvailable将返回LANG_MISSING_DATA以便我捕获此状态,但是,它只返回LANG_COUNTRY_AVAILABLE.情况如下图所示:在此输入图像描述

我希望能够检测到所选语言环境的语音数据何时未下载/丢失,并提供toast消息或直接用户下载它.我见过几个职位建议使用采用isLanguageAvailable这样的一个.我还查看了android文档,似乎isLanguageAvailable的返回值应该用LANG_MISSING_DATA捕获丢失语音数据的状态.

我还尝试使用ACTION_CHECK_TTS_DATA发送一个intent,作为检查丢失数据的另一种方法,如我链接的Android文档中所建议的那样.但是,resultCode再次没有捕获/指示语音数据丢失(CHECK_VOICE_DATA_FAIL),而是返回CHECK_VOICE_DATA_PASS.

在这种情况下,如何捕获可用/支持的语言/语言环境的状态,语音数据丢失?我也很好奇为什么CHECK_VOICE_DATA_PASS和LANG_MISSING_DATA不是返回的值.当语音数据丢失时,它不应该返回这些值吗?谢谢!下面是我尝试在没有下载语音数据的语言环境中使用setLanguage和isLanguageAvailable时的返回值(0和1是日志中显示的方法的返回值,-1是对应于丢失语音的方法数据):在此输入图像描述

android text-to-speech android-intent

13
推荐指数
1
解决办法
1220
查看次数

SpeechToText并运行ACTION_CHECK_TTS_DATA意图

TextToSpeech完全按照这篇博文中提到的那样实现了集成.在我将它添加到我的程序后,它现在正在干扰我的其他程序intent.

例如:

  1. 项目清单
  2. 用户启动应用
  3. 用户调用加载活动
  4. 用户选择要加载的文件,活动返回fileanme以加载意图
  5. 主要活动开始,并意识到它需要加载一个文件名,所以它开始这样做
  6. 需要检查TTS,以便启动ACTION_CHECK_TTS_DATA意图
  7. 这会再次暂停主要活动,并且加载过程会中断
  8. 当TTS检查返回时,加载从未发生过.

我什么时候需要这个TTS检查?我可以在应用程序启动时执行一次吗?这导致我的应用程序加载缓慢.如果可能的话,我希望在单独的线程中执行此加载.

android text-to-speech

5
推荐指数
1
解决办法
1597
查看次数

标签 统计

android ×2

text-to-speech ×2

android-intent ×1