Это предложение немного левого поля, но вы смотрели на программное обеспечение караоке? Это может показаться недостаточно серьезным, но звучит очень похоже на то, что вы делаете. Например, Aegisub - это программа субтитров, которая позволяет создавать субтитры в формате SSA / ASS. В нем есть инструменты караоке для подсвечивания выбранного слова или части.
Чаще всего он используется для субтитров аниме, но он также работает для аудио, если у вас есть подходящий плеер. К сожалению, они довольно редки на Mac.
Формат выглядит аналогично формату, предложенному Ювалом А:
{\K132}Unmei {\K34}no {\K54}tobira
{\K60}{\K132}yukkuri {\K36}to {\K142}hirakareta
Длины - это длительности, а не абсолютные смещения. Это облегчает смещение начала строки без пересчета всех смещений. Двойная запись указывает на паузу.
Есть ли веская причина, по которой это должно быть частью вашей Java-программы, или возможно готовое решение?