Android:是否可以更快地加载TTS?

时间:2013-11-19 17:48:28

标签: android text-to-speech oncreate

我正在开发一个词汇应用程序,在大多数活动中都会有TTS。我正在实施TTS,如http://www.androidhive.info/2012/01/android-text-to-speech-tutorial/

所示

然而,我发现并且非常肯定在OnCreate中设置TTS会导致应用程序以TTS打开活动非常慢。 (通过使用和不使用TTS运行相同的活动进行测试)

// setup TTS part 1.1
mTts = new TextToSpeech(ActivityA.this, this);  // TextToSpeech.OnInitListener

问题:

过程如何更快?在背景加载TTS?然而,一旦打开ActivityA的布局,就必须立即说出/发音词汇。

1 个答案:

答案 0 :(得分:0)

本月(2014年5月)Google发布了Google TTS引擎的更新版本(v3.1.3)。使用新版本我的经验是,启动引擎可能需要5秒钟,这使得pearmak的问题更加贴切。

我对此问题的解决方案是通过让父活动创建TTS引擎的实例并保持实例来预加载谷歌tts。当用户导航到需要TTS的新活动时,该活动仍然创建自己的TTS实例,但初始时间现在是毫秒。开放活动并准备发言时几乎没有延迟。

缺点是Google TTS进程在可能不需要时正在运行(消耗内存)。如果您的UI没有分层设计,这也可能难以管理。