5 Commit-ok

Szerző SHA1 Üzenet Dátum
hariel1985
b8f4a222f8 Update README for 1.3.1
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 11:00:27 +02:00
hariel1985
71178c81bd Bump version to 1.3.1
Patch release: quantized Whisper models (Turbo q5_0 needs ~0.7 GB RAM
instead of ~1.75 GB), a download progress window, and model warm-up at
recording start with a HUD notice when the first transcription is slow.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 11:00:02 +02:00
hariel1985
4584d30e02 Add quantized models, download progress window and model warm-up
Quantized models: add Small q5_1, Medium q5_0, Large v3 Turbo q5_0/q8_0
and Large v3 q5_0 to the catalog. Turbo q5_0 keeps whisper-server at
~0.7 GB instead of ~1.75 GB with the same speed. Installed models show
their catalog name; the first-run wizard uses a popup instead of one
button per model.

Download feedback: a progress window with bar, size, speed, time left,
cancel and retry, followed by "loading" and "ready" steps. Progress also
shows in the menu bar icon, the status menu and the Settings button, and
the Settings model list refreshes when done. Only one download runs at a
time, an existing model is replaced only after a successful download, and
HTTP errors are reported instead of saving the error page as a model.

Model warm-up: start loading the model when recording starts instead of
after it stops. After 2+ minutes idle a tiny silent request pages the
model back in while the user talks; a dead server is restarted, and a
server that is still loading is awaited rather than loading the model a
second time via whisper-cli. If loading takes over 2.5 s the recording
HUD explains why this transcription is slower. Server start no longer
overwrites the recording/transcribing menu bar icon.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 11:00:02 +02:00
hariel1985
29d0c0e503 Update README for 1.3.0
Document the warm whisper-server, live mic-level HUD, and custom
dictionary; add them to the feature list and Settings; note the
loopback-only server and the one-time model load at startup.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 16:02:20 +02:00
hariel1985
fdf8bf9743 Use English for all UI strings (HUD + dictionary)
The new HUD label and the dictionary table labels/placeholders were in
Hungarian; the rest of the app is English. Translated: "No audio input?",
"Recording…", "Dictionary (heard → replacement):", column titles
"Heard"/"Replacement", and the field placeholders/hint.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 09:26:35 +02:00
4 fájl változott, egészen pontosan 724 új sor hozzáadva és 145 régi sor törölve

Fájl megtekintése

@@ -12,17 +12,33 @@ A simple menu bar app for voice dictation using OpenAI Whisper (local, offline).
## macOS ## macOS
### What's new in 1.3.1
- 🪶 **Quantized models** — *Large v3 Turbo q5_0* keeps the transcription server at ~0.7 GB RAM instead of ~1.75 GB, at the same speed (also Small q5_1, Medium q5_0, Turbo q8_0 and Large v3 q5_0)
- 📥 **Download progress window** — progress bar, size, speed, time remaining, Cancel/Retry; progress also shows in the menu bar and Settings
- 🔥 **Model warm-up at recording start** — if the model was paged out after a pause, it starts loading as soon as you start talking, not after you stop; the HUD tells you when a transcription is slower because the model is still loading
### What's new in 1.3.0
- ⚡ **Warm transcription server** — the Whisper model stays loaded in a background `whisper-server`, so each dictation is a fast local call (~0.5s) instead of reloading the 1.5–1.6 GB model on every utterance
- 📊 **Live mic-level HUD** while recording, which warns ("No audio input?") if the microphone stays silent
- 📖 **Custom dictionary** — an editable *Heard → Replacement* table that fixes names/jargon in the transcript and also biases recognition
### Features ### Features
- 🎤 Global hotkey (⌃⌥D) to start/stop recording - 🎤 Global hotkey (⌃⌥D) to start/stop recording
- ⚡ Fast transcription via a warm whisper-server (model stays loaded — no per-dictation reload), with automatic fallback to `whisper-cli`
- 📊 Live mic-level meter while recording, with a "no audio input" warning
- 📖 Custom dictionary (heard → replacement) that also biases recognition
- 🔒 Fully offline - uses local Whisper model - 🔒 Fully offline - uses local Whisper model
- ⚡ Automatic paste into any focused app - ⌨️ Automatic paste into any focused app
- 📋 Clipboard preservation - your copied content is restored after paste - 📋 Clipboard preservation - your copied content is restored after paste
- ⚙️ Settings window with model selection dropdown - ⚙️ Settings window with model selection dropdown
- 📥 Built-in model downloader with progress indicator - 📥 Built-in model downloader with a progress window (speed, time remaining, cancel/retry)
- 🪶 Quantized model options for much lower memory use
- 🚀 Launch at login support - 🚀 Launch at login support
- 🔊 Sound feedback (optional) - 🔊 Sound feedback (optional)
- 📦 Self-contained - whisper-cli bundled in app - 📦 Self-contained - whisper-cli and whisper-server bundled in the app
### Requirements ### Requirements
@@ -74,7 +90,8 @@ make install
Click the menu bar icon → Settings to configure: Click the menu bar icon → Settings to configure:
- **Language**: Auto-detect or 31 supported languages - **Language**: Auto-detect or 31 supported languages
- **Model**: Select from installed models or download new ones - **Model**: Select from installed models or download new ones (✓ marks models already downloaded)
- **Dictionary**: Add *Heard → Replacement* pairs to fix names/jargon (use `\n` for a newline); the replacement terms also improve recognition
- **Sound feedback**: Toggle audio feedback on/off - **Sound feedback**: Toggle audio feedback on/off
- **Launch at login**: Start automatically when you log in - **Launch at login**: Start automatically when you log in
@@ -91,8 +108,22 @@ Download models directly from the app or manually:
| Large v3 Turbo | 1.6 GB | ~4 sec | Best | **Recommended** - fast like Medium, accurate like Large | | Large v3 Turbo | 1.6 GB | ~4 sec | Best | **Recommended** - fast like Medium, accurate like Large |
| Large v3 | 3.1 GB | ~8 sec | Maximum | Difficult audio, max accuracy | | Large v3 | 3.1 GB | ~8 sec | Maximum | Difficult audio, max accuracy |
**Quantized variants** (q5/q8) have much smaller weights, so the model uses far less memory, with a small accuracy trade-off:
| Model | Size | Full-size equivalent |
|-------|------|----------------------|
| Small q5_1 | 181 MB | Small (466 MB) |
| Medium q5_0 | 514 MB | Medium (1.5 GB) |
| Large v3 Turbo q5_0 | 547 MB | Large v3 Turbo (1.6 GB) — measured ~0.7 GB RAM vs ~1.75 GB, same speed |
| Large v3 Turbo q8_0 | 833 MB | Large v3 Turbo (1.6 GB) — near-identical accuracy |
| Large v3 q5_0 | 1.0 GB | Large v3 (3.1 GB) |
Models are stored in `~/.whisper-models/` Models are stored in `~/.whisper-models/`
> With the warm server (1.3.0+), the selected model loads once at startup (a few seconds); after that each dictation skips the reload, so the speeds above are roughly the per-dictation transcription time.
>
> The server keeps the whole model in memory while it runs. If macOS pages it out after a long pause, 1.3.1+ starts loading it back as soon as you start recording, and the HUD shows *"Loading model into memory…"* if that takes a moment.
### Audio Feedback ### Audio Feedback
- 🔔 **Tink** - Recording started - 🔔 **Tink** - Recording started
@@ -114,6 +145,7 @@ Grant these in System Settings → Privacy & Security:
## Security ## Security
- All processing is done locally - no data leaves your device - All processing is done locally - no data leaves your device
- The bundled `whisper-server` is bound to `127.0.0.1` (loopback only) and is never exposed on the network
- Audio files are stored in private temp directory and deleted after transcription - Audio files are stored in private temp directory and deleted after transcription
- Clipboard is cleared after paste (transcript doesn't remain accessible) - Clipboard is cleared after paste (transcript doesn't remain accessible)
- Original clipboard content is preserved and restored after paste - Original clipboard content is preserved and restored after paste

Fájl megtekintése

@@ -2,7 +2,7 @@
APP_NAME = WhisperDictate APP_NAME = WhisperDictate
APP_BUNDLE = $(APP_NAME).app APP_BUNDLE = $(APP_NAME).app
VERSION = 1.3.0 VERSION = 1.3.1
# Directories # Directories
SRC_DIR = src SRC_DIR = src

Fájl megtekintése

@@ -19,9 +19,9 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.3.0</string> <string>1.3.1</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>3</string> <string>4</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>13.0</string> <string>13.0</string>
<key>LSUIElement</key> <key>LSUIElement</key>

A különbségek nem kerülnek megjelenítésre, mivel a fájl túl nagy Load Diff