安卓文字转语音初始化非常缓慢

8

我的应用程序是为视觉障碍者设计的,因此它严重依赖于文本转语音。该应用程序调用API并使用android.speech.tts.TextToSpeech将一些相关信息读出来给用户听。

除了我注意到有时候文本转语音的初始化需要10秒或更长时间,这是我的应用程序的主要瓶颈之一,其他都很好。

我想知道是否有人有任何想法,如何优化我的代码以减轻这个问题。首先,我的应用程序启动一个活动检查TTS数据。

    Intent checkIntent = new Intent();
    checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
    startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);

然后,使用活动的结果调用此方法。根据结果,文本转语音要么只是初始化(这几乎总是发生),要么安装在设备上(非常罕见)。

    private TextToSpeech mTts;

    @Override
    protected void onActivityResult(
            int requestCode, int resultCode, Intent data) {
        if (requestCode == MY_DATA_CHECK_CODE) {
            if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
                // success, create the TTS instance
                mTts = new TextToSpeech(this, this);
            } else {
                // missing data, install it
                Intent installIntent = new Intent();
                installIntent.setAction(
                        TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
                startActivity(installIntent);
            }
        }
    } 

最后,当所有这些都完成后,我的应用程序会调用一个API,并且有几行像这样的代码:

    mTts.speak("<Useful output here>", TextToSpeech.QUEUE_FLUSH, null);   

感谢您的帮助!


请查看此线程Text To Speech app UI is slow android - Anup
1个回答

1
有点晚了,但我认为,这只是设备上正在发生的事情。其他优先级更高的事情正在占用处理器时间。我认为盲人不需要在他们的设备上安装很多应用程序。此外,请考虑使用“自动启动”应用程序来自动启动您的应用程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接