# Preparing audio and transcripts for fine-tuning Whisper

**URL:** </static-proxy?url=https%3A%2F%2Fdiscuss.huggingface.co%2Ft%2Fpreparing-audio-and-transcripts-for-fine-tuning-whisper%2F163987%3E%5C
**Category:** Models\
**Created:** [July 21, 2025, 6:38pm UTC](/static-proxy?url=https%3A%2F%2Fdiscuss.huggingface.co%2Ft%2Fpreparing-audio-and-transcripts-for-fine-tuning-whisper%2F163987 "2025-07-21T18:38:47Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![efaith2000](https://avatars.discourse-cdn.com/v4/letter/e/439d5e/32.png) [@efaith2000](/static-proxy?url=https%3A%2F%2Fdiscuss.huggingface.co%2Fu%2Fefaith2000)%5C
**Post date:** [July 21, 2025, 6:38pm UTC](/static-proxy?url=https%3A%2F%2Fdiscuss.huggingface.co%2Ft%2Fpreparing-audio-and-transcripts-for-fine-tuning-whisper%2F163987%2F1 "2025-07-21T18:38:47Z")

</div>

I have a set of audio files and their accompanying transcripts (stored as text files), totaling about 13 hours of audio. I plan to use these to fine-tune Whisper, which requires breaking them up into chunks of 30s or less. I know pydub’s split\_on\_silence can be used to split the audio files along periods of silence, to ensure words are not cut-off, but I am unsure how I can split the transcripts to ensure they line up with the audio splits. Are there any existing tools to help with this, or would it need to be done manually?

---

<div class="post-metadata">

**Author:** ![John6666](https://sea2.discourse-cdn.com/hellohellohello/user_avatar/discuss.huggingface.co/john6666/32/27664_2.png) [@John6666](/static-proxy?url=https%3A%2F%2Fdiscuss.huggingface.co%2Fu%2FJohn6666)%5C
**Post date:** [July 22, 2025, 1:15pm UTC](/static-proxy?url=https%3A%2F%2Fdiscuss.huggingface.co%2Ft%2Fpreparing-audio-and-transcripts-for-fine-tuning-whisper%2F163987%2F2 "2025-07-22T13:15:31Z")

</div>

Hmm… How about [simply using chunking setting built in Whisper](https://huggingface.co/spaces/openai/whisper/discussions/71)?

---

<div class="post-metadata">

**Author:** ![efaith2000](https://avatars.discourse-cdn.com/v4/letter/e/439d5e/32.png) [@efaith2000](/static-proxy?url=https%3A%2F%2Fdiscuss.huggingface.co%2Fu%2Fefaith2000)%5C
**Post date:** [July 22, 2025, 2:55pm UTC](/static-proxy?url=https%3A%2F%2Fdiscuss.huggingface.co%2Ft%2Fpreparing-audio-and-transcripts-for-fine-tuning-whisper%2F163987%2F3 "2025-07-22T14:55:37Z")

</div>

It seems like those are for producing timestamps for each word generated during inference. If I already have audio and transcripts, I assume that would require using Whisper to re-transcribe each audio file, no?

---

<div class="post-metadata">

**Author:** ![John6666](https://sea2.discourse-cdn.com/hellohellohello/user_avatar/discuss.huggingface.co/john6666/32/27664_2.png) [@John6666](/static-proxy?url=https%3A%2F%2Fdiscuss.huggingface.co%2Fu%2FJohn6666)%5C
**Post date:** [July 22, 2025, 11:03pm UTC](/static-proxy?url=https%3A%2F%2Fdiscuss.huggingface.co%2Ft%2Fpreparing-audio-and-transcripts-for-fine-tuning-whisper%2F163987%2F4 "2025-07-22T23:03:27Z")

</div>

Oh… True…😅  
It’s really old, but how about [`aeneas`](https://github.com/akki2825/aeneas)?  
There may be [some useful utilities in the torchaudio library](https://docs.pytorch.org/audio/main/tutorials/ctc_forced_alignment_api_tutorial.html).
