Изучите
Web Audio API и идеи появятся : )
Есть событие
timeupdate , оно вызывается каждый раз когда время в атрибуте
currentTime обновляется. Значение атрибута
currentTime это количество секунд прошедших с начала воспроизведения (число с плавающей точкой).
const sound = document.getElementById('audio-node')
sound.addEventListener('timeupdate', () => {
console.log(sound.currentTime.toFixed(0))
})