Мое приложение используется людьми с ослабленным зрением, поэтому оно в значительной степени зависит от текста в речь. Приложение обращается к 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);
Спасибо за помощь!
проверить эту тему [Text To Speech app UI is slow android] (http://stackoverflow.com/a/24398365/2584794) – Anup