# Voice clips

Hold **F2**, say your message, and let go. What you said is typed into the message box, so you can fix it before you press Enter. The **Voice Clip** button by the message box does the same while you hold it down.

**Tools > Voice clips...** changes the shortcut, and lets you press it once to start and again to stop instead of holding it. A shortcut is one of the F keys, or a key with Ctrl, ⌥ or ⌘.

**Send the message as soon as I stop talking**, in the same place, sends what you said without waiting for Enter. Anything already in the message box is sent with it. Left off, your words are only typed.

Your voice is turned into text on your computer by [whisper.cpp](https://github.com/ggml-org/whisper.cpp). The recording never leaves it.

**Set it up on Mac.** Install whisper.cpp and download a model:

```bash
brew install whisper-cpp
curl -L --fail --create-dirs -o "$HOME/Library/Application Support/buddylist/whisper/ggml-base.en.bin" https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.en.bin
```

**On Windows and Linux**, install or build whisper.cpp for your system and put `whisper-cli` on your PATH, or set `BUDDYLIST_WHISPER_CLI` to its full executable path. Put the model in `whisper/` inside [the app's data folder](getting-started.md#where-your-data-lives), or set `BUDDYLIST_WHISPER_MODEL` to its full path.

Neither is bundled, because a model alone is about 150 MB. `ggml-base.en.bin` is English only. The [other models](https://huggingface.co/ggerganov/whisper.cpp) understand more languages; the bigger ones are more accurate and slower.

- The app finds `whisper-cli` on your `PATH`; set `BUDDYLIST_WHISPER_CLI` to use a different one.
- It uses the `ggml-*.bin` file in that `whisper` folder, the first by name if there are several. Set `BUDDYLIST_WHISPER_MODEL` to use a model kept somewhere else.
- On Mac, macOS asks for microphone access the first time you record. Allow it, then hold F2 again.

Good to know:

- On a Mac keyboard F2 is **fn+F2**, unless your F keys are set to work as standard function keys.
- Wait for "Recording" in the status bar before you talk. The microphone is only on while you hold the key.
- `Esc` throws the clip away. So does switching to another window while you hold the shortcut; a clip you started with a press carries on.
- A tap does nothing, and a clip stops by itself after two minutes.
- **Actions > Record a voice clip** records until you press the shortcut, whichever way it is set.
- The browser preview has no microphone: it types a sample sentence instead.
