Files
WhisperDictate/README.md
hariel1985 3d9e798f02 Initial commit: WhisperDictate menu bar app
- Global hotkey (⌃⌥D) for voice dictation
- Local Whisper transcription (offline)
- Auto-paste to active app
- Hungarian language default

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:09:39 +01:00

91 sor
2.0 KiB
Markdown

# WhisperDictate
A simple macOS menu bar app for voice dictation using OpenAI Whisper (local, offline).
## Features
- 🎤 Global hotkey (⌃⌥D) to start/stop recording
- 🔒 Fully offline - uses local Whisper model
- ⚡ Automatic paste into any app
- 🇭🇺 Hungarian language support (configurable)
## Requirements
- macOS 13.0+
- Apple Silicon Mac (M1/M2/M3)
- whisper-cpp (`brew install whisper-cpp`)
- Whisper model file
## Installation
### 1. Install whisper-cpp
```bash
brew install whisper-cpp sox
```
### 2. Download Whisper model
```bash
mkdir -p ~/.whisper-models
curl -L -o ~/.whisper-models/ggml-medium.bin \
"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium.bin"
```
### 3. Build WhisperDictate
```bash
git clone https://github.com/YourUsername/WhisperDictate.git
cd WhisperDictate
swiftc -o WhisperDictate main.swift \
-framework Cocoa \
-framework AVFoundation \
-framework Carbon \
-framework CoreGraphics
```
### 4. Run
```bash
./WhisperDictate
```
Or copy to your bin folder:
```bash
cp WhisperDictate ~/bin/
~/bin/WhisperDictate &
```
## Usage
1. Look for the 🎤 icon in your menu bar
2. Press **⌃⌥D** (Control + Option + D) to start recording
3. Speak (icon changes to 🔴)
4. Press **⌃⌥D** again to stop and transcribe
5. Text is automatically pasted where your cursor is
## Audio Feedback
- 🔔 **Tink** - Recording started
- 🔔 **Pop** - Recording stopped, processing
- 🔔 **Glass** - Success, text pasted
- 🔔 **Basso** - Error
## Permissions
The app needs:
- **Microphone** access (System Settings → Privacy & Security → Microphone)
- **Accessibility** access for auto-paste (System Settings → Privacy & Security → Accessibility)
## Configuration
Edit `main.swift` to change:
- Language: Change `"-l", "hu"` to your language code (e.g., `"en"`, `"de"`)
- Hotkey: Modify `registerHotkey()` function
- Model: Change `whisperModel` path for different model sizes
## License
MIT License