Turn your voice into text with a key hold — minimal, fast, and macOS-native.
abiSPEAK is a set-it-and-forget-it speech-to-text utility for macOS. Hold the Fn key to record, release to transcribe, and your words appear wherever your cursor is — automatically pasted. Lives in your menu bar, stays out of your way.
- 🖥️ Menu Bar App: Runs quietly in the menu bar with visual recording indicator
- ⚡ Fn Key Activation: Hold Fn to record, release to transcribe (or quick-tap to toggle)
- 📋 Auto-Paste: Text lands right where you need it, no extra clicks
- 🔊 Audio Cues: Subtle beeps when recording starts and stops
- 🍎 Mac Optimized: Uses Apple Silicon acceleration (MLX, MPS)
- 🌍 Multilingual: Default model supports 25 European languages with auto-detection
- 📜 History: Access recent transcriptions from the menu bar
- macOS: 12.3+ (Apple Silicon recommended)
- Python: 3.10+
- Permissions:
- 🎤 Microphone access
- ⌨️ Input Monitoring (for Fn key detection)
brew tap abiassi/abispeak
brew install --cask abispeakgit clone https://github.com/abiassi/abispeak.git
cd abispeak
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtFor additional model support:
pip install -r requirements-nvidia.txt # NVIDIA NeMo models
pip install -r requirements-whisper.txt # OpenAI Whisper- Launch abiSPEAK (from Applications or
python menu_bar_app.py) - Grant permissions when prompted (Microphone, Input Monitoring)
- Hold Fn to record, release to transcribe
- Text is automatically pasted at your cursor
Click the menu bar icon to access:
- Audio Device: Select your microphone
- Model: Switch transcription models
- Recent Transcriptions: Copy previous transcriptions
- Preferences: Configure settings
- Hold Mode: Hold Fn to record, release to stop (default)
- Toggle Mode: Quick-tap Fn to start, tap again to stop
| Alias | Model | Notes |
|---|---|---|
parakeet |
ONNX INT8 v3 | Default, 25 languages, fastest |
parakeet-mlx |
MLX Parakeet | Apple Silicon optimized |
canary |
Canary 1B Flash | Multilingual (En, De, Fr, Es) |
whisper |
Whisper Large v3 | Most accurate, slower |
# List available models
python menu_bar_app.py --list-models
# Use a specific model
python menu_bar_app.py --model whisperpython menu_bar_app.py [OPTIONS]
Options:
--model MODEL Select speech recognition model (default: parakeet)
--list-models Show all available models
--no-history Disable transcription history
--debug Enable debug logging- Fn key not working: Grant Input Monitoring permission in System Settings → Privacy & Security
- No transcription: Check Microphone permission is granted
- Mic indicator stays on: Update to v1.7.2+ which fixes this issue
- All transcription happens locally on your Mac
- No audio is sent to external servers
- History stored in
~/.abispeak/history.db(delete to clear)
Originally forked from patelnav/ctrlspeak.
- @swanhtet1992 - Transcription history feature