Parakeet UK
How I fine-tuned a speech-to-text model in a weekend
On one MacBook. The result makes a fifth fewer errors than Whisper large-v3 on Ukrainian, at about 160 times its speed.
Ukrainian meetings had no transcriber I could trust
I record a lot of meetings held in Ukrainian, and I needed transcripts I could rely on. I could not find a model that handled Ukrainian speech well enough. The best one was Whisper large-v3, and it still made too many mistakes to use without fixing the text by hand.
My workaround was Super mode in Transcriberr: two models transcribe the same recording and a vote merges their output. It caught enough errors to be usable, but Whisper alone needs about 49 minutes for an hour of audio, so every meeting meant a long wait.
So the goal was one model, more accurate than Whisper on Ukrainian, fast enough to run on every recording.
Seven seconds from parliament. Transcribed in 0.04 seconds.
A deputy in the Verkhovna Rada, from a session none of the models trained on. Press play: the audio runs in real time, and each transcript lands at the moment that model would finish it.
Тому давайте ми відділимо мухи від котлет і проголосуємо даний законопроект в цілому
Тому давайте ми відділимо мухи від котлет і проголосуємо дане законопроєкт в цілому.
Тому давайте ми відділимо мухи від котлет і проголосуємо даний законопроект в цілому.
“So let's separate the flies from the cutlets and vote on this bill as a whole”: a Ukrainian idiom for keeping two issues apart. Whisper uses the wrong form of “this” and drops “в”; Parakeet v3 drops “в”. Whisper also writes законопроєкт, the newer official spelling, which the reference spells the old way; that one is not marked. Punctuation is not scored. Audio: Verkhovna Rada plenary session, 3 December 2020.
In the 49 minutes Whisper spends on one hour of audio, Parakeet UK gets through 155.
Fewer errors than the model everyone reaches for
“Better” means the 95% confidence interval of the difference against Whisper excludes zero (paired bootstrap, 3,000 resamples). On IT, psychology and English, Whisper is slightly ahead on the number and the gap is within noise. Against the Parakeet v3 it started from, the fine-tune is better on all seven Ukrainian sets, and English held.
How it was done
- Build the dataset from public speech
Verkhovna Rada plenary recordings matched to the official stenograms, online videos with human-made Ukrainian subtitles, and 8 hours of English to keep English intact. A word-level aligner cuts clips at the quietest frame and drops any clip that disagrees with the reference by more than 20%. Result: 165.5 hours, split by session and channel so nothing in a test set is ever trained on.
- Train on the laptop
NVIDIA Parakeet TDT 0.6B v3, with the first 12 encoder layers frozen: 320 M of 627 M parameters trained, on the M3 Pro's GPU. One epoch takes about 13 hours. A second pass added IT, psychology, medicine and engineering talks.
- Fix the bugs that broke the first runs
BatchNorm statistics drifting in tiny batches pushed the first run from 9.9% to 15.5% error while its loss looked fine. The tokenizer glued numbers to the previous word in 18% of labels. 37 videos had English or Russian audio under Ukrainian subtitles. Each fix is one reason the final model works.
- Ship it on-device
Exported to Core ML with an int8 encoder (603 MB), which costs 0.1 points of accuracy. It now runs in Transcriberr, offline, on the Neural Engine. The weights and Core ML builds are on Hugging Face.
Read the numbers with this
- Every model was scored on every clip of every set with the same normalisation: lower case, punctuation removed.
- References write numbers as digits. Parakeet UK was trained in that style, which gives it a small edge on numbers.
- The video and domain references are subtitles written by the creators, checked against automatic captions. Nobody verified them by hand. That noise is the same for all three models.
- Stock Parakeet v3 is faster still (313× real time). The fine-tune takes about 13% more decoding steps.
- All runs on one M3 Pro. Other Macs change the absolute speed, not the error rates.