Skip to content

Whisper models

If you use Whisper to transcribe, KeptNote needs a model file. This article says which file works, where it goes, and what the messages mean.

Do you need this?

Only if the Engine in Settings, on the Transcription tab, is Whisper (advanced). KeptNote uses Whisper by default only on macOS 15 to 25. On macOS 26 or later, the Apple engine needs no model file. If you want to avoid this setup, choose Apple (built in) there. See Transcription engines, models and languages.

KeptNote does not bundle Whisper, and it does not download Whisper models. You install whisper.cpp, and you put a model file on your Mac.

What a model file looks like

A Whisper model for whisper.cpp is a file whose name starts with ggml- and ends with .bin. Examples: ggml-small.en.bin, ggml-small.bin, ggml-base.en.bin and ggml-base.bin. The size word in the name is tiny, base, small, medium or large, from smallest to largest. Some names carry a mark such as -q5_1. That marks a smaller, compressed copy of the same model.

Two kinds of model exist.

  • English-only. The name has .en in it, for example ggml-small.en.bin. KeptNote also treats any file whose name starts with ggml-distil as English-only.
  • Multilingual. The name has no .en, for example ggml-small.bin.

Where to put it

KeptNote looks in this folder: Library / Application Support / KeptNote / models, inside your home folder. Put your model files there. You can also keep them anywhere and press Choose… next to Model on the Transcription tab. The path must be a full path.

If you leave Model empty, KeptNote picks the first file it finds in the models folder, in this order: ggml-small.en.bin, ggml-small.bin, ggml-base.en.bin and ggml-base.bin. The file must exist, be readable, and not be empty.

The executable works the same way. If Executable is empty, KeptNote looks for whisper-cli in /opt/homebrew/bin and in /usr/local/bin.

English-only models and other languages

An English-only model cannot transcribe other languages well. So when your Language is anything other than English, including the automatic choice, KeptNote swaps an English-only model for a multilingual one, if it can find one.

  • First it looks for the same model without .en, for example ggml-small.bin in place of ggml-small.en.bin. It looks in the folder of your chosen model, then in the models folder.
  • If that does not exist, it takes the largest multilingual model it finds.
  • When your language is English, or English with a region such as en-GB, KeptNote keeps your model as chosen.

Under the Model row, a grey line shows the result: For and the language, then the file KeptNote will use.

When no multilingual model is found

A message titled No multilingual Whisper model says: Whisper needs a multilingual model for the language, add the file to the models folder, or switch the engine to Apple in Settings. It names a file that would fix it, usually the same model without .en, or ggml-small.bin. On macOS 26 or later, the message adds that KeptNote used Apple for that meeting. Without Apple, KeptNote carries on with the English-only model, and the transcript will be poor.

  1. Get a multilingual model file, for example ggml-small.bin, from the whisper.cpp project.

  2. Put it in the models folder above, or next to the model you chose.

  3. Open Settings, on the Transcription tab, and check the grey line under Model. It should now name your multilingual file.

Or choose Apple (built in) as the engine, on macOS 26 or later.

Other messages

  • Choose a local whisper executable. or Choose a local whisper model. Press Choose… and pick the file.
  • The whisper executable path must be absolute. Use a full path that starts with a slash.
  • The Whisper model was not found at a path. The file moved or its name is wrong. Choose it again.
  • whisper-cli is not executable at a path. The file is not a program that your Mac may run.
  • Your audio is safe. Local transcription needs a one-time Whisper setup. This shows on a note when Whisper has no executable or model. Your audio is kept, and you can transcribe once you finish the setup.

KeptNote stops a Whisper run that takes more than two hours. If Whisper fails on the graphics chip, KeptNote tries again without it.

Was something unclear? Write to hello@keptnote.com.