2015-01-11 1 views
7

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

Все работает хорошо, за исключением того, что я заметил, что иногда инициализация текста в речь занимает 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); 

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

+0

проверить эту тему [Text To Speech app UI is slow android] (http://stackoverflow.com/a/24398365/2584794) – Anup

ответ

1

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