【问题标题】:Install TTS voice data in real time android安卓实时安装TTS语音数据
【发布时间】:2018-12-10 06:15:41
【问题描述】:

我正在尝试通过谷歌 TTS 语音合成器大声朗读印地语文本,它在我的设备上运行良好,因为我已经手动安装了印地语语音数据,但是在另一台不包含印地语语音的设备上进行测试时,它没有显示下载特定语音数据的提示。这是部分代码:

  @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    if (requestCode == ACT_CHECK_TTS_DATA) {
        if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
            // Data exists, so we instantiate the TTS engine
            textToSpeech = new TextToSpeech(this, this);
        } else {
            // Data is missing, so we start the TTS
            // installation process
            Intent installIntent = new Intent();
            installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
            startActivity(installIntent);
        }
    }
}

所以,TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA 似乎不起作用,但是我不知道它到底做了什么,我相信其余的代码都很好。 我的问题有什么解决办法吗?

【问题讨论】:

  • 在您开始安装 TTS 数据的活动后,日志会告诉您什么?顺便说一句,第一个 if-case 的常量应该是:ACTION_CHECK_TTS_DATA
  • 我无法像谷歌翻译那样使用网络阅读。顺便说一句,我没有收到任何错误。所以日志什么也没说。
  • 在 if 子句中,ACT_CHECK_TTS_DATA 只是用户定义的常量,用于跟踪 onActivityResult ID。其值为 1000。
  • 我只是想知道,如果目标设备缺少所需的语音数据,如何提示下载?实时。
  • 您应该在每个 if-branch 中添加调试消息,以查看程序流程是否正确。另外,您是否指定了要下载的语言(即印地语)?您可能不想下载所有语言,对吧?

标签: android text-to-speech


【解决方案1】:

使用以下方式检查是否安装了可用的语言。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);

   if (requestCode == VOICE_DATA_CHECK) {
    ArrayList<String> availableLanguages = 
   data.getStringArrayListExtra(TextToSpeech.Engine.EXTRA_AVAILABLE_VOICES);

     if (availableLanguages.isEmpty()) {
      // no language data available, prompt for install
     Intent installIntent = new Intent();
      installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
      startActivity(installIntent);
     } else {
     // some language data is available, create TTS instance
      mTts = new TextToSpeech(this, this);
   }
  }
}

【讨论】:

  • 你是一个美丽的人,谢谢你拯救了我的一天!它有效。
  • 对了,它不能读取大文本,为什么会这样?可能的解决方案是什么?
猜你喜欢
  • 1970-01-01
  • 2018-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多