Android text to speech очень медленно инициализируется

мое приложение используется людьми с нарушениями зрения, поэтому оно в значительной степени зависит от текста в речь. Приложение делает вызов API и считывает нагрузку (используя android.речь.функция TTS.TextToSpeech) некоторая соответствующая информация для пользователя.

все работает хорошо, за исключением того, что я заметил, что иногда инициализация текста в речь занимает 10 секунд или более и является основным узким местом моего приложения.

мне было интересно, если у кого-нибудь идеи о как я мог бы оптимизировать свой код, чтобы смягчить эту проблему.

во-первых, мое приложение запускает действие для проверки данных TTS.

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

затем этот метод вызывается с результатом действия. В зависимости от результата, text to speech либо просто инициализируется (это почти всегда происходит), либо text to speech устанавливается на устройство (очень редко).

    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);   

Спасибо за помощь!

1 ответов


немного поздно, но я бы сказал, это просто то, что происходит в устройстве. Другие вещи с более высоким приоритетом занимают процессорное время. Я думаю, что слепому человеку не нужно много приложений на устройстве. Также рассмотрим приложение Auto Start. для автоматического запуска приложения.