Думаю, ответ нужно искать в синтезаторе речи (eSpeak, кажется?)
Именно потому, что скорость регулируется, невозможно точно предугадать, когда будет прочитана фраза. Незрячие обычно сильно ускоряют синтезатор, чтобы успевать реагировать на сообщения системы, играть и палаллельно отвечать в чате, например.
Помню, в BGT есть команда voice.speak_wait, которая означает, что нужно дождаться, когда будет прочитана фраза, и только после этого продолжать выполнять программу. Это работало как для SAPI, так и для NVDA. Хотя бы ясно, что это реально.
Да, ESpeak - один из синтезаторов речи, но он сейчас не популярен, т.к. есть десятки синтезаторов с более естественным звучанием. Из линейки Vocalizer Expressive или хотя бы отечественный open source синтезатор RHVoice.