2015-01-11 8 views
7

Meine Anwendung wird von Menschen verwendet, die sehbehindert sind, so dass es stark auf Text zu sprechen beruht. Die Anwendung führt einen Aufruf an eine API aus und liest dem Benutzer (unter Verwendung von android.speech.tts.TextToSpeech) einige relevante Informationen vor.Android Text zu Sprache ist sehr langsam zu initialisieren

Alles funktioniert gut, außer ich habe bemerkt, dass manchmal die Initialisierung von Text zu Sprache dauert 10 Sekunden oder mehr und ist der größte Engpass meiner Anwendung.

Ich frage mich, ob jemand irgendwelche Ideen hatte, wie ich meinen Code optimieren könnte, um dieses Problem zu mildern.

Zuerst startet meine Anwendung eine Aktivität, um die TTS-Daten zu überprüfen.

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

Dann wird diese Methode mit dem Ergebnis der Aktivität aufgerufen. Abhängig vom Ergebnis wird Text-zu-Sprache entweder gerade initialisiert (dies geschieht fast immer) oder Text-zu-Sprache ist auf dem Gerät installiert (sehr selten).

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

Wenn schließlich alles meine Anwendung vervollständigt einen Aufruf an eine API und hat wie diese mehrere Zeilen:

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

Danke für die Hilfe!

+0

diesen Thread überprüfen [Text To Speech App UI ist langsam Android] (http://StackOverflow.com/a/24398365/2584794) – Anup

Antwort

1

Ein bisschen spät am Tag, aber ich würde sagen, ist es einfach, was los ist in dem Gerät. Andere Dinge mit höherer Priorität nehmen Prozessorzeit in Anspruch. Ich denke, dass eine blinde Person nicht viele Apps auf ihrem Gerät benötigt. Beachten Sie auch die Auto Start App. um deine App automatisch zu starten.

Verwandte Themen