TextToSpeech, como saber quando o áudio terminou

Boa tarde,

Estou tendo problema na utilização do TextToSpeech, preciso fazer uma animação assim que terminar a execução do áudio, porém ao utilizar o while abaixo, o celular fica todo travado até sair do while, nem as teclas de volume eu consigo alterar. Alguém tem alguma solução?

Obs: Estou utilizando o Android Studio

protected void speakOut(String text) {

tts.speak(text, TextToSpeech.QUEUE_ADD, null);

while (tts.isSpeaking() ) {

};