GitHub Issue

Whisper engine: I have one working — want a PR? (plus a VAD gotcha that'll bite you)

Discovered On Jul 28, 2026
Primary Metric open
The README lists a WhisperKit engine as planned. I built one against a fork to get Brazilian Portuguese working, and it's running well — but you said it's on your roadmap, so I'd rather ask than drop an unsolicited PR on top of a design you've already got in mind. Two things here: a gotcha that's worth knowing whoever writes the engine, and an offer. ## The gotcha: don't use WhisperKit's VAD chunking I reached for `chunkingStrategy: .vad` first, since it looks like the obvious choice for long meeting audio. It silently breaks things: - On a 30s clip it returned only the first ~20s. No error, no warning — just a short transcript. - With a language **forced** (`DecodingOptions(language: "pt", usePrefillPrompt: true)`) it returned **zero segments**, silently. Both failures are quiet, which is the dangerous kind for something transcribing a meeting you can't re-run. Leaving `chunkingStrategy` nil and letting Whisper's own sequential seek loop handle long audio works correctly — I verified timestamps stay coherent well past the 30s window on a 62s file. ## The offer Roughly 130 lines, conforming to your existing `TranscriptionEngine` protocol — no changes to the protocol itself, and the same zero-frame `AVAudioFile` readability probe the parakeet engine uses (I hit that uncatchable ObjC exception too; your comment about it saved me an afternoon). Measured on 62s of pt-BR speech, Apple Silicon: | Engine | Size | Time | Notes | |---|---|---|---| | parakeet v3 | ~600 MB | 0....
View Raw Thread