docs: add screenshots to README and MANUAL, rename screenshot files
- Renamed 21 raw screenshots to meaningful filenames under Screenshots/ - Updated README.md and linux/README.md: added organized screenshot sections (Main panel & overlay, Settings pages, Setup wizard) using new filenames with click-to-enlarge links - Updated MANUAL.md: rewrote intro to reflect new sidebar navigation (Presets · General · Keyboard · Wakeword · STT Engines · LLM Engines · Benchmark — STT · Benchmark — Wakeword · Log · Manual · About); renamed section headers to match; added screenshot at each section Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
210
MANUAL.md
@ -1,10 +1,11 @@
|
||||
# Blitztext — User Manual
|
||||
|
||||
A reference for every setting in the Blitztext **Settings** window, tab by tab.
|
||||
A reference for every setting in the Blitztext **Settings** window, page by page.
|
||||
|
||||
Open Settings from the system-tray menu (**Settings…**) or the control panel. The
|
||||
window has seven tabs — **Presets · Engines · Input · General · Benchmark · Log ·
|
||||
About** — and three buttons along the bottom.
|
||||
sidebar lists all pages: **Presets · General · Keyboard · Wakeword · STT Engines ·
|
||||
LLM Engines · Benchmark — STT · Benchmark — Wakeword · Log · Manual · About**.
|
||||
Three buttons run along the top: **Save**, **Save & Restart**, and **✕ Close**.
|
||||
|
||||
> **Where settings are stored:** `~/.config/blitztext/config.toml`
|
||||
> (or `$XDG_CONFIG_HOME/blitztext/config.toml`). You can edit that file directly;
|
||||
@ -20,7 +21,11 @@ About** — and three buttons along the bottom.
|
||||
|
||||
---
|
||||
|
||||
## Presets tab
|
||||
## Presets
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-presets.png"><img src="Screenshots/settings-presets.png" alt="Presets page" width="100%"></a>
|
||||
</p>
|
||||
|
||||
Presets are your dictation **actions**. Each one either types what you say, or
|
||||
rewrites it through the language model first (e.g. into a polished email). Trigger
|
||||
@ -44,54 +49,35 @@ Use the dropdown at the top to pick a preset to edit, **+ Add** to create one, o
|
||||
|
||||
---
|
||||
|
||||
## Engines tab
|
||||
## General
|
||||
|
||||
Engines do the work: the **speech-to-text (STT)** engine turns your voice into
|
||||
text; the **language model (LLM)** rewrites it. Each engine can run locally or on
|
||||
a server you specify. A **green dot** means it's reachable, **red** means offline.
|
||||
The currently selected engine in each dropdown is the **active** one.
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-general.png"><img src="Screenshots/settings-general.png" alt="General page" width="100%"></a>
|
||||
</p>
|
||||
|
||||
### Speech-to-text engine
|
||||
|
||||
Buttons: **+ Add** (cloud/OpenAI-style), **+ Stream** (realtime Riva/NIM),
|
||||
**Delete**, **Test** (records 4 s and transcribes), **Refresh** (re-check status).
|
||||
Each engine maps to a `[[stt_engine]]` entry; the active one is `[stt] active`.
|
||||
Microphone, text delivery, language, notifications, the on-screen overlay, and
|
||||
autostart.
|
||||
|
||||
| Setting | TOML key | Description |
|
||||
|---|---|---|
|
||||
| **Name** | `name` | A label for this engine (e.g. "faster-whisper GPU"). |
|
||||
| **Type** | `type` | `local` (in-process faster-whisper) · `openai` (any OpenAI-compatible `/v1` STT server) · `riva_realtime` (live streaming engine). |
|
||||
| **URL** | `url` | Server endpoint. Example: `http://localhost:8010/v1` · realtime: `http://localhost:8006/v1`. Ignored for `local`. |
|
||||
| **Model** | `model` | Model name. For `local`: `tiny`/`base`/`small`/`medium`/`large-v3` or a path. For remote: blank = server default, or pick from the searchable list fetched from the URL. |
|
||||
| **API key env** | `api_key_env` | *Name of the environment variable* holding the API key (e.g. `GROQ_API_KEY`). Optional. |
|
||||
|
||||
**Local engine (faster-whisper) — device & precision** (global, `[whisper]`):
|
||||
|
||||
| Setting | TOML key | Description |
|
||||
|---|---|---|
|
||||
| **Device** | `device` | `auto` (try CUDA, fall back to CPU) · `cpu` · `cuda`. |
|
||||
| **Compute type** | `compute_type` | `auto` · `int8` · `float16` · `int8_float16`. Lower precision is faster and uses less memory. |
|
||||
|
||||
### Language model (rewrite)
|
||||
|
||||
Buttons: **+ Add**, **Delete**, **Refresh**. Each maps to a `[[llm_engine]]`
|
||||
entry; the active one is `[llm] active`.
|
||||
|
||||
| Setting | TOML key | Description |
|
||||
|---|---|---|
|
||||
| **Name** | `name` | A label for this LLM (e.g. "Local Qwen"). |
|
||||
| **Type** | `type` | `local` (a server on this machine) or `cloud`. |
|
||||
| **Base URL** | `url` | OpenAI-compatible endpoint, e.g. `http://localhost:28080/v1` or `https://api.openai.com/v1`. |
|
||||
| **Model** | `model` | The model to use; pick from the list once the URL is set. |
|
||||
| **API key env** | `api_key_env` | Environment-variable name holding the key (e.g. `OPENAI_API_KEY`). Blank for local servers. |
|
||||
| **Temperature** | `temperature` | Default creativity for rewrites (e.g. `0.3`). Presets can override this. |
|
||||
| **Microphone** | `mic` | Which input device Blitztext records from. |
|
||||
| **Input level** | — | Live level bar (read-only); should move when you speak. |
|
||||
| **Output** | `output` | `type` types the text key-by-key · `paste` copies it and presses Ctrl+V (faster for long text). |
|
||||
| **Language hint** | `language` | Spoken-language code (`de`, `en`, …). Blank = auto-detect. |
|
||||
| **Notifications** | `notify` | Show desktop notifications for recording/transcription status and errors (manual sessions). |
|
||||
| **Announce matched preset** | `notify_routing` | After a voice command, pop a notification showing which preset (and spoken keyword) matched — shown **even for hands-free** sessions, with the preset's emoji. Only fires on a real match. |
|
||||
| **Visual overlay** | `overlay_enabled` | Show a translucent bubble at the cursor while you dictate — a pulsing **microphone**, a **live waveform** of your mic level, and the **recognised text** (word-by-word with a streaming engine, or the final result as a brief confirmation). The tail points at where the text lands, and it gives **hands-free** sessions visible feedback. Click-through; never takes focus. *(X11 only.)* |
|
||||
| **Launch on login** | *(autostart file)* | Start Blitztext automatically when you log in (writes a desktop autostart entry, not `config.toml`). |
|
||||
|
||||
---
|
||||
|
||||
## Input tab
|
||||
## Keyboard
|
||||
|
||||
Controls **how you start and stop** dictating, the noise filter, hands-free
|
||||
wakeword, and audio cues.
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-keyboard.png"><img src="Screenshots/settings-keyboard.png" alt="Keyboard page" width="100%"></a>
|
||||
</p>
|
||||
|
||||
Controls **how you start and stop** dictating with the keyboard, the noise filter, and audio cues.
|
||||
|
||||
### Input mode & keys
|
||||
|
||||
@ -120,7 +106,26 @@ in the `[quality]` section.
|
||||
| **Reject hallucinations** | `reject_hallucinations` | Drop STT "ghost" outputs like *"Thank you."* / *"Bye."* that Whisper invents from silence. |
|
||||
| **Strip trailing punctuation** | `strip_trailing_punctuation` | Remove ending periods from delivered text — handy for code insertion. |
|
||||
|
||||
### Hands-free (Wakeword)
|
||||
### Audio cues (manual dictation)
|
||||
|
||||
These control the chimes for **manual** (keyboard/hotkey) dictation only. The
|
||||
hands-free wakeword sounds are **separate and independent** (see Wakeword page).
|
||||
|
||||
| Setting | TOML key | Description |
|
||||
|---|---|---|
|
||||
| **Play audio cues** | `[sounds] enabled` | On/off for the **manual** start/stop chimes below. Does **not** affect the wakeword sounds. |
|
||||
| **Play before** | `[sounds] before` | Chime when recording **starts** (manual dictation). Empty = built-in system sound. |
|
||||
| **Play after** | `[sounds] after` | Chime when recording **stops** (paste, paste+Enter, or auto-stop on silence). Empty = built-in system sound. |
|
||||
|
||||
> Each sound row has ▶ (preview) and ⌫ (clear).
|
||||
|
||||
---
|
||||
|
||||
## Wakeword
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-wakeword.png"><img src="Screenshots/settings-wakeword.png" alt="Wakeword page" width="100%"></a>
|
||||
</p>
|
||||
|
||||
Start dictation with a spoken keyword via an external
|
||||
[Wyoming](https://github.com/rhasspy/wyoming) openWakeWord server. Maps to the
|
||||
@ -143,20 +148,7 @@ Start dictation with a spoken keyword via an external
|
||||
> You can also pause/resume detection from the tray ("Pause wakeword"), which
|
||||
> toggles the `/tmp/wake_muted` flag.
|
||||
|
||||
### Audio cues (manual dictation)
|
||||
|
||||
These control the chimes for **manual** (keyboard/hotkey) dictation only. The
|
||||
hands-free wakeword sounds above are **separate and independent**.
|
||||
|
||||
| Setting | TOML key | Description |
|
||||
|---|---|---|
|
||||
| **Play audio cues** | `[sounds] enabled` | On/off for the **manual** start/stop chimes below. Does **not** affect the wakeword sounds above. |
|
||||
| **Play before** | `[sounds] before` | Chime when recording **starts** (manual dictation). Empty = built-in system sound. |
|
||||
| **Play after** | `[sounds] after` | Chime when recording **stops** (paste, paste+Enter, or auto-stop on silence). Empty = built-in system sound. |
|
||||
|
||||
> Each sound row has ▶ (preview) and ⌫ (clear).
|
||||
>
|
||||
> **The two pairs differ by trigger *and* by empty-behaviour:**
|
||||
> **The two sound pairs differ by trigger *and* by empty-behaviour:**
|
||||
>
|
||||
> | | Plays on | Used for | When empty |
|
||||
> |---|---|---|---|
|
||||
@ -165,28 +157,69 @@ hands-free wakeword sounds above are **separate and independent**.
|
||||
|
||||
---
|
||||
|
||||
## General tab
|
||||
## STT Engines
|
||||
|
||||
Microphone, text delivery, language, notifications, the on-screen overlay, and
|
||||
autostart.
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-stt-engines.png"><img src="Screenshots/settings-stt-engines.png" alt="STT Engines page" width="100%"></a>
|
||||
</p>
|
||||
|
||||
The **speech-to-text** engine turns your voice into text. Each engine can run
|
||||
locally or on a server. A **green dot** means it's reachable, **red** means
|
||||
offline. The active engine is the one selected in the top dropdown.
|
||||
|
||||
Buttons: **+ Add** (batch/cloud/OpenAI-style), **+ Stream** (realtime Riva/NIM),
|
||||
**Delete**, **Test** (records 4 s and transcribes), **Refresh** (re-check status).
|
||||
Each engine maps to a `[[stt_engine]]` entry; the active one is `[stt] active`.
|
||||
|
||||
| Setting | TOML key | Description |
|
||||
|---|---|---|
|
||||
| **Microphone** | `mic` | Which input device Blitztext records from. |
|
||||
| **Input level** | — | Live level bar (read-only); should move when you speak. |
|
||||
| **Output** | `output` | `type` types the text key-by-key · `paste` copies it and presses Ctrl+V (faster for long text). |
|
||||
| **Language hint** | `language` | Spoken-language code (`de`, `en`, …). Blank = auto-detect. |
|
||||
| **Notifications** | `notify` | Show desktop notifications for recording/transcription status and errors (manual sessions). |
|
||||
| **Announce matched preset** | `notify_routing` | After a voice command, pop a notification showing which preset (and spoken keyword) matched — shown **even for hands-free** sessions, with the preset's emoji. Only fires on a real match. |
|
||||
| **Visual overlay** | `overlay_enabled` | Show a translucent bubble at the cursor while you dictate — a pulsing **microphone**, a **live waveform** of your mic level, and the **recognised text** (word-by-word with a streaming engine, or the final result as a brief confirmation). The tail points at where the text lands, and it gives **hands-free** sessions visible feedback. Click-through; never takes focus. *(X11 only.)* |
|
||||
| **Launch on login** | *(autostart file)* | Start Blitztext automatically when you log in (writes a desktop autostart entry, not `config.toml`). |
|
||||
| **Name** | `name` | A label for this engine (e.g. "faster-whisper GPU"). |
|
||||
| **Type** | `type` | `local` (in-process faster-whisper) · `openai` (any OpenAI-compatible `/v1` STT server) · `riva_realtime` (live streaming engine). |
|
||||
| **URL** | `url` | Server endpoint. Example: `http://localhost:8010/v1` · realtime: `http://localhost:8006/v1`. Ignored for `local`. |
|
||||
| **Model** | `model` | Model name. For `local`: `tiny`/`base`/`small`/`medium`/`large-v3` or a path. For remote: blank = server default, or pick from the searchable list fetched from the URL. |
|
||||
| **API key env** | `api_key_env` | *Name of the environment variable* holding the API key (e.g. `GROQ_API_KEY`). Optional. |
|
||||
|
||||
**Local engine (faster-whisper) — device & precision** (global, `[whisper]`):
|
||||
|
||||
| Setting | TOML key | Description |
|
||||
|---|---|---|
|
||||
| **Device** | `device` | `auto` (try CUDA, fall back to CPU) · `cpu` · `cuda`. |
|
||||
| **Compute type** | `compute_type` | `auto` · `int8` · `float16` · `int8_float16`. Lower precision is faster and uses less memory. |
|
||||
|
||||
---
|
||||
|
||||
## Benchmark tab
|
||||
## LLM Engines
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-llm-engines.png"><img src="Screenshots/settings-llm-engines.png" alt="LLM Engines page" width="100%"></a>
|
||||
</p>
|
||||
|
||||
The **language model** rewrites your dictated text (e.g. into a polished email).
|
||||
Each engine can be a local LAN server or a cloud service. The active engine is
|
||||
the one selected in the top dropdown.
|
||||
|
||||
Buttons: **+ Add**, **Delete**, **Refresh**. Each maps to a `[[llm_engine]]`
|
||||
entry; the active one is `[llm] active`.
|
||||
|
||||
| Setting | TOML key | Description |
|
||||
|---|---|---|
|
||||
| **Name** | `name` | A label for this LLM (e.g. "Local Qwen"). |
|
||||
| **Type** | `type` | `local` (a server on this machine) or `cloud`. |
|
||||
| **Base URL** | `url` | OpenAI-compatible endpoint, e.g. `http://localhost:28080/v1` or `https://api.openai.com/v1`. |
|
||||
| **Model** | `model` | The model to use; pick from the list once the URL is set. |
|
||||
| **API key env** | `api_key_env` | Environment-variable name holding the key (e.g. `OPENAI_API_KEY`). Blank for local servers. |
|
||||
| **Temperature** | `temperature` | Default creativity for rewrites (e.g. `0.3`). Presets can override this. |
|
||||
|
||||
---
|
||||
|
||||
## Benchmark — STT
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-benchmark-stt.png"><img src="Screenshots/settings-benchmark-stt.png" alt="Benchmark — STT page" width="100%"></a>
|
||||
</p>
|
||||
|
||||
Compare your STT engines for **speed and accuracy** on the same clip. Add an
|
||||
engine preset (Engines tab) for each model you want to compare. No persistent
|
||||
engine in the STT Engines page for each model you want to compare. No persistent
|
||||
settings — it's a one-off tool.
|
||||
|
||||
1. **Audio (.wav)** — a recording to transcribe.
|
||||
@ -213,7 +246,24 @@ A summary line names the **fastest** and **most accurate** engine. Click any col
|
||||
|
||||
---
|
||||
|
||||
## Log tab
|
||||
## Benchmark — Wakeword
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-benchmark-wakeword.png"><img src="Screenshots/settings-benchmark-wakeword.png" alt="Benchmark — Wakeword page" width="100%"></a>
|
||||
</p>
|
||||
|
||||
Stress-test your wakeword detection by generating speech with a TTS server and
|
||||
checking whether the wake word fires correctly. Reports **recall** (how often it
|
||||
fires when it should) and **false-fire rate** (how often it fires on non-wake
|
||||
speech) across multiple synthetic voices.
|
||||
|
||||
---
|
||||
|
||||
## Log
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-log.png"><img src="Screenshots/settings-log.png" alt="Log page" width="100%"></a>
|
||||
</p>
|
||||
|
||||
A live activity log — useful to watch a model load/download or to diagnose a
|
||||
problem (recording, transcription, routing, and wakeword events all appear here).
|
||||
@ -227,7 +277,21 @@ problem (recording, transcription, routing, and wakeword events all appear here)
|
||||
|
||||
---
|
||||
|
||||
## About tab
|
||||
## Manual
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-manual.png"><img src="Screenshots/settings-manual.png" alt="Manual page" width="100%"></a>
|
||||
</p>
|
||||
|
||||
Inline copy of this manual, readable without leaving the app.
|
||||
|
||||
---
|
||||
|
||||
## About
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-about.png"><img src="Screenshots/settings-about.png" alt="About page" width="100%"></a>
|
||||
</p>
|
||||
|
||||
Read-only information:
|
||||
|
||||
|
||||
135
README.md
@ -8,9 +8,13 @@ Blitztext is a native Linux dictation tool that captures your voice, transcribes
|
||||
> No hosted backend — bring your own models and endpoints.
|
||||
|
||||
<p align="center">
|
||||
<img src="Screenshots/panel.png" alt="Blitztext control panel" width="380">
|
||||
<img src="Screenshots/main-panel.png" alt="Blitztext control panel" width="360">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<img src="Screenshots/overlay-listening.png" alt="On-screen overlay while listening" width="360">
|
||||
|
||||
<img src="Screenshots/tray-menu.png" alt="Blitztext system-tray menu" width="300">
|
||||
<img src="Screenshots/overlay-result.png" alt="On-screen overlay showing transcription result" width="360">
|
||||
</p>
|
||||
|
||||
📖 **[User manual](MANUAL.md)** — every setting in every tab, explained.
|
||||
@ -65,47 +69,124 @@ Stream: hotkey → mic PCM chunks → Riva/NIM WebSocket → live words typed
|
||||
|
||||
## Screenshots
|
||||
|
||||
Everything is configured in the GTK **Settings** window — every tab has tooltips
|
||||
and screen-reader (ATK) support. Click any image to open it full size.
|
||||
Everything is configured in the GTK **Settings** window — the sidebar gives quick
|
||||
access to every page. All controls have tooltips and screen-reader (ATK) support.
|
||||
Click any image to open it full size.
|
||||
|
||||
### Main panel & overlay
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-presets.png"><img src="Screenshots/settings-presets.png" alt="Presets settings tab" width="100%"></a><br>
|
||||
<em><b>Presets</b> — your dictation actions. Each preset is either a plain transcription or an LLM rewrite, and carries its own spoken keyword(s) for voice routing, an optional global hotkey, and a custom rewrite prompt.</em>
|
||||
<a href="Screenshots/main-panel.png"><img src="Screenshots/main-panel.png" alt="Blitztext main panel" width="46%"></a>
|
||||
|
||||
<a href="Screenshots/overlay-listening.png"><img src="Screenshots/overlay-listening.png" alt="Overlay — listening" width="46%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>Left:</b> Control panel listing all presets with icons, descriptions, and hotkeys.</em>
|
||||
|
||||
<em><b>Right:</b> On-screen overlay showing the live waveform while listening.</em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-engines.png"><img src="Screenshots/settings-engines.png" alt="Engines settings tab" width="100%"></a><br>
|
||||
<em><b>Engines</b> — your speech-to-text and language-model back-ends, local or remote. Add and rename engines, watch live online/offline status, and pick models from a searchable list fetched straight from the endpoint.</em>
|
||||
<a href="Screenshots/overlay-result.png"><img src="Screenshots/overlay-result.png" alt="Overlay — transcription result" width="46%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em>Overlay after transcription — preset name and recognised text appear at the cursor.</em>
|
||||
</p>
|
||||
|
||||
### Settings — General & Input
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-presets.png"><img src="Screenshots/settings-presets.png" alt="Presets page" width="48%"></a>
|
||||
|
||||
<a href="Screenshots/settings-general.png"><img src="Screenshots/settings-general.png" alt="General page" width="48%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>Presets</b> — dictation actions with keywords, hotkeys, LLM mode, and custom prompts.</em>
|
||||
|
||||
<em><b>General</b> — microphone, output mode, language hint, notifications, overlay, autostart.</em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-input.png"><img src="Screenshots/settings-input.png" alt="Input settings tab" width="100%"></a><br>
|
||||
<em><b>Input</b> — how you start and stop dictation: the modifier-key scheme (Ctrl+Win / Ctrl / Alt / Esc) or custom hotkeys, plus the silence-based auto-stop (VAD), the quality gate, and audio cues.</em>
|
||||
<a href="Screenshots/settings-keyboard.png"><img src="Screenshots/settings-keyboard.png" alt="Keyboard page" width="48%"></a>
|
||||
|
||||
<a href="Screenshots/settings-wakeword.png"><img src="Screenshots/settings-wakeword.png" alt="Wakeword page" width="48%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>Keyboard</b> — modifier-key scheme or direct hotkeys, quality gate, audio cues.</em>
|
||||
|
||||
<em><b>Wakeword</b> — hands-free dictation via a Wyoming/openWakeWord server, with live level meter and model picker.</em>
|
||||
</p>
|
||||
|
||||
### Settings — Engines
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-stt-engines.png"><img src="Screenshots/settings-stt-engines.png" alt="STT Engines page" width="48%"></a>
|
||||
|
||||
<a href="Screenshots/settings-llm-engines.png"><img src="Screenshots/settings-llm-engines.png" alt="LLM Engines page" width="48%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>STT Engines</b> — speech-to-text back-ends (local faster-whisper, OpenAI-compatible server, or Riva realtime), with green/red status dot and Test button.</em>
|
||||
|
||||
<em><b>LLM Engines</b> — language-model back-ends for text rewriting (LAN server or cloud service).</em>
|
||||
</p>
|
||||
|
||||
### Settings — Benchmark
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-benchmark-stt.png"><img src="Screenshots/settings-benchmark-stt.png" alt="Benchmark — STT page" width="48%"></a>
|
||||
|
||||
<a href="Screenshots/settings-benchmark-wakeword.png"><img src="Screenshots/settings-benchmark-wakeword.png" alt="Benchmark — Wakeword page" width="48%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>Benchmark — STT</b> — compare every configured engine against a reference WAV + transcript; results table shows speed, accuracy, device, and language support.</em>
|
||||
|
||||
<em><b>Benchmark — Wakeword</b> — stress-test wakeword detection using a TTS server to synthesise wake phrases in random voices, reporting recall and false-fire rates.</em>
|
||||
</p>
|
||||
|
||||
### Settings — Log & About
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-log.png"><img src="Screenshots/settings-log.png" alt="Log page" width="48%"></a>
|
||||
|
||||
<a href="Screenshots/settings-about.png"><img src="Screenshots/settings-about.png" alt="About page" width="48%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>Log</b> — live activity log for recording, transcription, routing, and wakeword events.</em>
|
||||
|
||||
<em><b>About</b> — version, source link, inline changelog, and licence.</em>
|
||||
</p>
|
||||
|
||||
### Setup Wizard
|
||||
|
||||
The first-run wizard guides you through the essentials in a few steps.
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/setup-welcome.png"><img src="Screenshots/setup-welcome.png" alt="Setup — Welcome" width="32%"></a>
|
||||
|
||||
<a href="Screenshots/setup-trigger.png"><img src="Screenshots/setup-trigger.png" alt="Setup — Trigger mode" width="32%"></a>
|
||||
|
||||
<a href="Screenshots/setup-shortcuts.png"><img src="Screenshots/setup-shortcuts.png" alt="Setup — Keyboard shortcuts" width="32%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em>Welcome · Choose trigger mode (keyboard / wakeword / both) · Set keyboard shortcuts</em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/wakeword.png"><img src="Screenshots/wakeword.png" alt="Wakeword (hands-free) settings" width="100%"></a><br>
|
||||
<em><b>Wakeword (hands-free)</b> — point Blitztext at a Wyoming/openWakeWord server, choose a wake model, and test the connection live so a spoken keyword starts dictation with no keys at all.</em>
|
||||
<a href="Screenshots/setup-voice.png"><img src="Screenshots/setup-voice.png" alt="Setup — Voice activation" width="32%"></a>
|
||||
|
||||
<a href="Screenshots/setup-stt.png"><img src="Screenshots/setup-stt.png" alt="Setup — STT engine" width="32%"></a>
|
||||
|
||||
<a href="Screenshots/setup-ai.png"><img src="Screenshots/setup-ai.png" alt="Setup — AI rewriting" width="32%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em>Voice activation (wakeword server) · Choose STT engine · Optional AI text rewriting</em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-general.png"><img src="Screenshots/settings-general.png" alt="General settings tab" width="100%"></a><br>
|
||||
<em><b>General</b> — core preferences: microphone with a live level meter, output mode (type vs. paste), language hint, type delay, the on-screen dictation overlay, and autostart on login.</em>
|
||||
<a href="Screenshots/setup-done.png"><img src="Screenshots/setup-done.png" alt="Setup — All done" width="32%"></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-benchmark.png"><img src="Screenshots/settings-benchmark.png" alt="Benchmark settings tab" width="100%"></a><br>
|
||||
<em><b>Benchmark</b> — compare every configured STT engine against a reference WAV + transcript to find the fastest and most accurate, with a Device column (CPU / GPU / remote).</em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-log.png"><img src="Screenshots/settings-log.png" alt="Log settings tab" width="100%"></a><br>
|
||||
<em><b>Log</b> — the in-app log buffer: a live view of recording, transcription, routing, and wakeword events for quick troubleshooting.</em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="Screenshots/settings-about.png"><img src="Screenshots/settings-about.png" alt="About settings tab" width="100%"></a><br>
|
||||
<em><b>About</b> — version, source link, changelog, and licence.</em>
|
||||
<em>Summary screen — ready to dictate.</em>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
BIN
Screenshots/main-panel.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
Screenshots/overlay-listening.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
Screenshots/overlay-result.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 202 KiB |
BIN
Screenshots/settings-benchmark-stt.png
Normal file
|
After Width: | Height: | Size: 127 KiB |
BIN
Screenshots/settings-benchmark-wakeword.png
Normal file
|
After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 118 KiB |
BIN
Screenshots/settings-keyboard.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
BIN
Screenshots/settings-llm-engines.png
Normal file
|
After Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 106 KiB |
BIN
Screenshots/settings-manual.png
Normal file
|
After Width: | Height: | Size: 219 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 118 KiB |
BIN
Screenshots/settings-stt-engines.png
Normal file
|
After Width: | Height: | Size: 111 KiB |
BIN
Screenshots/settings-wakeword.png
Normal file
|
After Width: | Height: | Size: 164 KiB |
BIN
Screenshots/setup-ai.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
Screenshots/setup-done.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
Screenshots/setup-shortcuts.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
Screenshots/setup-stt.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
Screenshots/setup-trigger.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
Screenshots/setup-voice.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
Screenshots/setup-welcome.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
@ -13,9 +13,13 @@ experiment along those lines was moved out to
|
||||
the optional rewrite step calls out to an LLM.
|
||||
|
||||
<p align="center">
|
||||
<img src="../Screenshots/panel.png" alt="Blitztext control panel" width="380">
|
||||
<img src="../Screenshots/main-panel.png" alt="Blitztext control panel" width="360">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<img src="../Screenshots/overlay-listening.png" alt="On-screen overlay while listening" width="360">
|
||||
|
||||
<img src="../Screenshots/tray-menu.png" alt="Blitztext system-tray menu" width="300">
|
||||
<img src="../Screenshots/overlay-result.png" alt="On-screen overlay showing transcription result" width="360">
|
||||
</p>
|
||||
|
||||
## Inspiration
|
||||
@ -61,47 +65,90 @@ visible feedback. Tune the anchor with `[general] overlay_anchor`. X11 only.
|
||||
|
||||
## Screenshots
|
||||
|
||||
Everything is configured in the **Settings** window — every tab has tooltips and
|
||||
screen-reader (ATK) support. Click any image to open it full size.
|
||||
Everything is configured in the **Settings** window — the sidebar gives quick
|
||||
access to every page. Click any image to open it full size.
|
||||
|
||||
### Main panel & overlay
|
||||
|
||||
<p align="center">
|
||||
<a href="../Screenshots/settings-presets.png"><img src="../Screenshots/settings-presets.png" alt="Presets settings tab" width="100%"></a><br>
|
||||
<em><b>Presets</b> — your dictation actions. Each preset is either a plain transcription or an LLM rewrite, and carries its own spoken keyword(s) for voice routing, an optional global hotkey, and a custom rewrite prompt.</em>
|
||||
<a href="../Screenshots/main-panel.png"><img src="../Screenshots/main-panel.png" alt="Blitztext main panel" width="46%"></a>
|
||||
|
||||
<a href="../Screenshots/overlay-listening.png"><img src="../Screenshots/overlay-listening.png" alt="Overlay — listening" width="46%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>Left:</b> Control panel listing all presets with icons, descriptions, and hotkeys.</em>
|
||||
|
||||
<em><b>Right:</b> On-screen overlay showing the live waveform while listening.</em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="../Screenshots/settings-engines.png"><img src="../Screenshots/settings-engines.png" alt="Engines settings tab" width="100%"></a><br>
|
||||
<em><b>Engines</b> — your speech-to-text and language-model back-ends, local or remote. Add and rename engines, watch live online/offline status, and pick models from a searchable list fetched straight from the endpoint.</em>
|
||||
<a href="../Screenshots/overlay-result.png"><img src="../Screenshots/overlay-result.png" alt="Overlay — transcription result" width="46%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em>Overlay after transcription — preset name and recognised text appear at the cursor.</em>
|
||||
</p>
|
||||
|
||||
### Settings — General & Input
|
||||
|
||||
<p align="center">
|
||||
<a href="../Screenshots/settings-presets.png"><img src="../Screenshots/settings-presets.png" alt="Presets page" width="48%"></a>
|
||||
|
||||
<a href="../Screenshots/settings-general.png"><img src="../Screenshots/settings-general.png" alt="General page" width="48%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>Presets</b> — dictation actions with keywords, hotkeys, LLM mode, and custom prompts.</em>
|
||||
|
||||
<em><b>General</b> — microphone, output mode, language hint, notifications, overlay, autostart.</em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="../Screenshots/settings-input.png"><img src="../Screenshots/settings-input.png" alt="Input settings tab" width="100%"></a><br>
|
||||
<em><b>Input</b> — how you start and stop dictation: the modifier-key scheme (Ctrl+Win / Ctrl / Alt / Esc) or custom hotkeys, plus the silence-based auto-stop (VAD), the quality gate, and audio cues.</em>
|
||||
<a href="../Screenshots/settings-keyboard.png"><img src="../Screenshots/settings-keyboard.png" alt="Keyboard page" width="48%"></a>
|
||||
|
||||
<a href="../Screenshots/settings-wakeword.png"><img src="../Screenshots/settings-wakeword.png" alt="Wakeword page" width="48%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>Keyboard</b> — modifier-key scheme or direct hotkeys, quality gate, audio cues.</em>
|
||||
|
||||
<em><b>Wakeword</b> — hands-free dictation via a Wyoming/openWakeWord server, with live level meter and model picker.</em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="../Screenshots/wakeword.png"><img src="../Screenshots/wakeword.png" alt="Wakeword (hands-free) settings" width="100%"></a><br>
|
||||
<em><b>Wakeword (hands-free)</b> — point Blitztext at a Wyoming/openWakeWord server, choose a wake model, and test the connection live so a spoken keyword starts dictation with no keys at all.</em>
|
||||
</p>
|
||||
### Settings — Engines
|
||||
|
||||
<p align="center">
|
||||
<a href="../Screenshots/settings-general.png"><img src="../Screenshots/settings-general.png" alt="General settings tab" width="100%"></a><br>
|
||||
<em><b>General</b> — core preferences: microphone with a live level meter, output mode (type vs. paste), language hint, type delay, the on-screen dictation overlay, and autostart on login.</em>
|
||||
<a href="../Screenshots/settings-stt-engines.png"><img src="../Screenshots/settings-stt-engines.png" alt="STT Engines page" width="48%"></a>
|
||||
|
||||
<a href="../Screenshots/settings-llm-engines.png"><img src="../Screenshots/settings-llm-engines.png" alt="LLM Engines page" width="48%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>STT Engines</b> — speech-to-text back-ends (local faster-whisper, OpenAI-compatible server, or Riva realtime), with green/red status dot and Test button.</em>
|
||||
|
||||
<em><b>LLM Engines</b> — language-model back-ends for text rewriting (LAN server or cloud service).</em>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="../Screenshots/settings-benchmark.png"><img src="../Screenshots/settings-benchmark.png" alt="Benchmark settings tab" width="100%"></a><br>
|
||||
<em><b>Benchmark</b> — compare every configured STT engine against a reference WAV + transcript. The results table shows <b>time</b>, <b>accuracy</b> (WER), <b>device</b> (CPU / GPU / remote), <b>language support</b>, and <b>RAM usage</b> (MB loaded during first run — useful for sizing local models). Also includes a <b>wakeword benchmark</b>: point it at any OpenAI-compatible TTS server (Kokoro, XTTS, …), and it synthesizes your wake phrase in random voices, streams it to your wyoming-openwakeword server, and reports recall + false-fires per voice.</em>
|
||||
</p>
|
||||
### Settings — Benchmark
|
||||
|
||||
<p align="center">
|
||||
<a href="../Screenshots/settings-log.png"><img src="../Screenshots/settings-log.png" alt="Log settings tab" width="100%"></a><br>
|
||||
<em><b>Log</b> — the in-app log buffer: a live view of recording, transcription, routing, and wakeword events for quick troubleshooting.</em>
|
||||
<a href="../Screenshots/settings-benchmark-stt.png"><img src="../Screenshots/settings-benchmark-stt.png" alt="Benchmark — STT page" width="48%"></a>
|
||||
|
||||
<a href="../Screenshots/settings-benchmark-wakeword.png"><img src="../Screenshots/settings-benchmark-wakeword.png" alt="Benchmark — Wakeword page" width="48%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>Benchmark — STT</b> — compare engines against a reference WAV + transcript; table shows speed, accuracy, device, and language support.</em>
|
||||
|
||||
<em><b>Benchmark — Wakeword</b> — stress-test wakeword detection via a TTS server, reporting recall and false-fire rates per voice.</em>
|
||||
</p>
|
||||
|
||||
### Settings — Log & About
|
||||
|
||||
<p align="center">
|
||||
<a href="../Screenshots/settings-about.png"><img src="../Screenshots/settings-about.png" alt="About settings tab" width="100%"></a><br>
|
||||
<em><b>About</b> — version, source link, changelog, and licence.</em>
|
||||
<a href="../Screenshots/settings-log.png"><img src="../Screenshots/settings-log.png" alt="Log page" width="48%"></a>
|
||||
|
||||
<a href="../Screenshots/settings-about.png"><img src="../Screenshots/settings-about.png" alt="About page" width="48%"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<em><b>Log</b> — live activity log for recording, transcription, routing, and wakeword events.</em>
|
||||
|
||||
<em><b>About</b> — version, source link, inline changelog, and licence.</em>
|
||||
</p>
|
||||
|
||||
## Requirements
|
||||
|
||||