Вызовите setOnUtteranceCompletedListener внутри функции onInit объекта tts.
Если вы хотите внести какие-либо изменения в интерфейс пользователя при вызове функции onUtteranceCompleted, добавьте код в метод runOnUIThread.
И не забудьте добавить значение параметра Hashmap при вызове функции speak ()
Пример:
TextToSpeech tts= new TextToSpeech(context, new OnInitListener() {
@Override
public void onInit(int status) {
mTts.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener() {
@Override
public void onUtteranceCompleted(String utteranceId) {
runOnUiThread(new Runnable() {
@Override
public void run() {
//UI changes
}
});
}
});
}
});
HashMap<String, String> params = new HashMap<String, String>();
params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,"stringId");
tts.speak("Text to Speak",TextToSpeech.QUEUE_FLUSH, params);