A lot of the longer writing I do starts as a voice memo: I go on a long walk with just my recorder and exhaust all of the angles I can think of over an hour or two. I used to use online sites to do transcription but I didn’t love the idea of sharing these with a third party and the experience was kind of annoying so I built WhisperBatch: a native SwiftUI Mac app that uses WhisperKit to transcribe locally. Pick as many files as you’d like, choose a model, and save a transcript next to each recording. You can preview the waveform and crop audio, include timestamps, or export text, SRT, VTT, and JSON. The default model is large-v3-turbo; models download on first use, and transcription then runs locally using the cached model. There’s also a Swift CLI that shares the app’s transcription engine.
Build and run
macOS 14 or later, Xcode with Swift 6 or later, and XcodeGen. Apple Silicon is recommended. Build the current Swift app from source. Dependencies and the first model download need internet access.
git clone https://github.com/sburl/WhisperBatch.git
cd WhisperBatch
brew install xcodegen
./build-local.sh
open build/DerivedData/Build/Products/AppStore/WhisperBatch.app
# CLI: swift run whisperbatch-cli /path/to/recordings --format txt