A small desktop app that turns audio into clean .srt subtitles with whisper.cpp.
🔒 100% local transcription. Your audio never leaves your Mac.
No uploads, accounts, subscriptions, or telemetry.
- Accepts MP3, WAV, M4A, FLAC, and OGG audio
- Generates and cleans timed SRT captions locally
- Supports multilingual and English-only Whisper models
- Lets you control language, line length, timing, vocabulary hints, and trailing silence
- Includes light and dark themes
- macOS (Apple Silicon is the first packaged target)
- Homebrew
- Node.js 22.12 or newer, only when running from source
brew install ffmpeg whisper-cppConfirm both commands are available:
ffmpeg -version
whisper-cli --helpModels live in ~/.srt-generator/models. The base model is a good first choice: it is small, multilingual, and fast enough for most personal use.
mkdir -p ~/.srt-generator/models
curl -L --fail --progress-bar \
-o ~/.srt-generator/models/ggml-base.bin \
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.binModel suggestions:
| Model | Approx. size | Best for |
|---|---|---|
tiny |
75 MB | Fast drafts and older Macs |
base |
142 MB | Recommended starting point |
small |
466 MB | Better accuracy, slower processing |
medium |
1.5 GB | High accuracy on a capable Mac |
Replace base in both parts of the download command to install another model. See the upstream model list for every available model. Files ending in .en.bin only support English.
Advanced: set
SRT_GENERATOR_MODELS_DIRbefore launching the app to use a different model folder. The default location is recommended because it keeps large models outside the Git repository.
git clone https://github.com/bragabriel/srt-generator.git
cd srt-generator
npm install
npm run devDrop in an audio file, choose where to save the subtitle, and click Generate SRT.
npm install
npm run dist:macThe Apple Silicon DMG is created in release/. Builds made locally are not signed or notarized. If macOS blocks the app, right-click it and choose Open, then confirm once.
The app expects ffmpeg, whisper-cli, and at least one model to be installed on the destination Mac.
npm run dev # Vite + Electron development mode
npm run build # Type-check and build the renderer
npm run lint # Static checks
npm test # Unit tests
npm run dist:mac # Build an Apple Silicon DMGRun brew install ffmpeg whisper-cpp, then close and reopen SRT Generator. When launching from a GUI, Homebrew must be available in the app's environment.
Check that the model ends in .bin and exists in the expected folder:
ls -lh ~/.srt-generator/modelsYou can also use Browse… in the app to select a model manually.
Start with tiny or base. Larger models trade speed and memory for accuracy.
Audio, models, generated subtitles, and technical prompts remain on your computer. SRT Generator does not include analytics or make network requests during transcription.
This is a small MIT-licensed project. If you find a bug or have a focused improvement, issues and pull requests are welcome at bragabriel/srt-generator.
If the project is useful to you, you can also star it on GitHub.

