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!
diesen Thread überprüfen [Text To Speech App UI ist langsam Android] (http://StackOverflow.com/a/24398365/2584794) – Anup