Repository navigation
v1.3.1 — Filter Whisper repetition loops
Fixes garbled transcript endings introduced by the turbo model in 1.3.0.
What was wrong
Whisper can fall into a repetition loop at the end of a file, appending dozens of copies of the last phrase — measured at 79x "Ciao." on a 94-second voice message. Turbo loops far more readily than the deeper models because its decoder is pruned to 4 layers, which is why this only surfaced after 1.3.0 made turbo the default.
The fix
Loop output is now filtered out at the stdout parse boundary. Three shapes are rejected:
- Zero-duration segments — start equals end, so no audio is spanned
- Segments past the end of the audio — Whisper zero-pads the final 30s window and decodes into the padding (a 63s file was emitting segments out to 01:21)
- Consecutive repeats of the previous segment's text
Dropped segments are counted and logged once at completion.
Decoding-flag workarounds were measured and rejected: --condition-on-previous-text False and --word-timestamps True both stop the loop but change transcribed words, and --compression-ratio-threshold has no effect at all. Filtering the output is strictly cheaper than degrading the decode.
Also fixed: audio duration is now read for Ogg/Opus files (WhatsApp voice notes), whose headers carry no duration — without it the past-the-end rule was silently inert on the app's most common input.
Install: download the DMG, drag Transcriber to Applications, open it. Requires Apple Silicon and macOS 14+.