whisperx does this all quite well and can be run with `uvx whisperx`
https://github.com/m-bain/whisperX