You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.de.md
+79-21Lines changed: 79 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,9 +20,11 @@
20
20
21
21
## Features
22
22
23
-
-**NEU: Mehrsprachige Oberfläche (EN/DE):** Schalte die App-Oberfläche zwischen Deutsch und Englisch um – unter **Einstellungen → Allgemein → „Sprache"** (die Änderung greift nach einem Neustart der App).
23
+
-**Mehrsprachige Oberfläche (EN/DE):** Schalte die App-Oberfläche zwischen Deutsch und Englisch um – unter **Einstellungen → Allgemein → „Sprache der Oberfläche"** (die Änderung greift nach einem Neustart der App).
24
+
-**Compose-Fenster:** Text eintippen oder einfügen, einen Workflow und Schreibstil wählen und von der KI umschreiben lassen — ganz ohne Mikrofon. Mit Tonfall-Auswahl, eigenem Preset, Varianten-Verlauf und Signatur-Unterstützung.
25
+
-**OpenRouter & eigene LLM-Endpunkte:** Nutze OpenRouter oder eine beliebige OpenAI-kompatible API als Alternative zu OpenAI für alle KI-Workflows.
26
+
-**Audio-Export:** Speichere die Ausgabe der Vorlesefunktion direkt als Audiodatei.
24
27
-**Eigennamen / Begriffe:** Erweitere das Vokabular der KI um eigene Begriffe, Namen oder Fachwörter für perfekte Transkriptionen.
25
-
26
28
-**Globale Hotkeys:** Jederzeit von überall im System aufnehmen.
27
29
-**Auto-Paste:** Erkennt Sprache und fügt sie direkt dort ein, wo der Cursor ist.
28
30
-**LLM-gestützte Workflows:** Lass die KI deine Sätze professionell umformulieren, emotional filtern oder mit passenden Emojis anreichern.
@@ -146,7 +148,7 @@ Blitztext registriert globale Hotkeys via `evdev`. Mit diesen Kombinationen hast
> **LLM-Workflows** (`Blitztext+`, `Blitztext $%&!`, `Blitztext :)`) setzen einen gültigen **OpenAI API-Key** voraus. Lege ihn am einfachsten in `~/.config/blitztext-linux/secrets.env` ab, indem du dort die Variable `OPENAI_API_KEY`mit deinem Key als Wert setzt (Zeilenformat `NAME=WERT`). `./run.sh` und der systemd-Service laden diese Datei automatisch. Ohne diesen Key sind diese Funktionen im Menü und über die Hotkeys deaktiviert bzw. führen zu einer Fehlermeldung.
151
+
> **LLM-Workflows** (`Blitztext+`, `Blitztext $%&!`, `Blitztext :)`) setzen einen gültigen **API-Key** voraus. Lege ihn am einfachsten in `~/.config/blitztext-linux/secrets.env` ab, indem du dort die Variable mit deinem Key als Wert setzt (Zeilenformat `NAME=WERT`, z. B. `OPENAI_API_KEY=sk-…`). `./run.sh` und der systemd-Service laden diese Datei automatisch. Ohne diesen Key sind diese Funktionen im Menü und über die Hotkeys deaktiviert bzw. führen zu einer Fehlermeldung.
150
152
151
153
## KI-Workflows
152
154
@@ -157,9 +159,21 @@ Die KI-Workflows helfen bei Formulierung, Ton und Emojis. Die passenden Einstell
157
159
<br><br>
158
160
</div>
159
161
162
+
### LLM-Anbieter
163
+
164
+
Blitztext unterstützt drei Anbieter-Modi, wählbar unter **Einstellungen → KI-Workflows → „LLM-Anbieter"**:
165
+
166
+
| Anbieter | Wann verwenden |
167
+
| :--- | :--- |
168
+
|**OpenAI** (Standard) | Standard-OpenAI-API mit `gpt-4o-mini` oder einem anderen Modell. |
169
+
|**OpenRouter**| Zugriff auf hunderte Modelle über einen einzigen API-Key (`OPENROUTER_API_KEY`). Base-URL: `https://openrouter.ai/api/v1`. |
170
+
|**Eigener Endpunkt**| Jede OpenAI-kompatible API — „Base-URL" und „LLM-Modell" auf den Anbieter anpassen. |
171
+
172
+
Für OpenRouter `base_url` auf `https://openrouter.ai/api/v1` setzen und Modell wählen (z. B. `openai/gpt-4o`). Der Name der API-Key-Umgebungsvariable wird unter „API-Key-Umgebung" eingestellt.
173
+
160
174
### Schreibstil-Vorlagen
161
175
162
-
Für den Workflow **Blitztext+** (Text-Verbesserer) gibt es vorgefertigte Schreibstil-Vorlagen, die du unter **Einstellungen → KI-Workflows → „Schreibstil-Vorlage"** auswählst:
176
+
Für den Workflow **Blitztext+** (Text-Verbesserer) gibt es vorgefertigte Schreibstil-Vorlagen, die du unter **Einstellungen → KI-Workflows → „Schreibstil-Vorlage"**oder direkt im **Compose-Fenster**auswählst:
163
177
164
178
| Vorlage | Wirkung |
165
179
| --- | --- |
@@ -171,8 +185,34 @@ Für den Workflow **Blitztext+** (Text-Verbesserer) gibt es vorgefertigte Schrei
171
185
|**Persönlich (Du-Form)**| Klarer Text in der persönlichen Du-Form. |
172
186
|**Höflich (Sie-Form)**| Klarer Text in der höflichen Sie-Form. |
173
187
|**Kurz & präzise**| Maximal knapp, ohne Füllwörter und Wiederholungen. |
188
+
|**Eigenes Preset…**| Ein freier System-Prompt, den du selbst unter **Einstellungen → Allgemein → „Eigenes Preset (Compose)"** festlegst. |
189
+
190
+
> Bei **Standard** wird zusätzlich der eingestellte **Tonfall** angewendet. Jede andere Vorlage bringt ihren eigenen Schreibstil mit und überschreibt den Tonfall. Eigennamen/Begriffe bleiben in allen Vorlagen erhalten.
191
+
192
+
---
193
+
194
+
## Compose-Fenster
195
+
196
+
Das **Compose-Fenster** (`✍ Compose…` im Tray-Kontextmenü) ermöglicht das Umschreiben beliebiger Texte mit der KI — ganz ohne Sprachaufnahme. Es eignet sich ideal zum Überarbeiten fertiger Entwürfe, E-Mails oder Notizen.
197
+
198
+
**Öffnen:** Klick auf das Tray-Icon → **✍ Compose…**
174
199
175
-
> Bei **Standard** wird zusätzlich der eingestellte **Tonfall** angewendet. Jede andere Vorlage bringt ihren eigenen Schreibstil mit und ersetzt den Tonfall. Eigennamen/Begriffe bleiben in allen Vorlagen erhalten.
200
+
**Was du im Compose-Fenster tun kannst:**
201
+
202
+
| Element | Beschreibung |
203
+
| :--- | :--- |
204
+
|**Entwurf (linkes Feld)**| Text eintippen oder einfügen, der umgeschrieben werden soll. |
205
+
|**Workflow**| Wähle zwischen Blitztext+ (Text-Verbesserer), Blitztext $%&! (Dampfablassen) oder Blitztext :) (Emojis). |
206
+
|**Schreibstil-Vorlage**| Vorlage auswählen oder **Eigenes Preset…** für einen vollständig freien System-Prompt. |
207
+
|**Tonfall**| Locker, neutral oder professionell. Aktiv nur bei **Standard**-Preset + **Blitztext+**; bei allen anderen Vorlagen ausgegraut (Tooltip erklärt warum). |
208
+
|**Verbessern**| Sendet den Entwurf an die KI und zeigt das Ergebnis im rechten Feld. |
209
+
|**Varianten-Verlauf**| Die letzten 10 generierten Ergebnisse der aktuellen Sitzung werden als scrollbare Liste gespeichert — Klick auf einen Eintrag stellt ihn wieder her. |
210
+
|**Signatur**| Hängt deine gespeicherte Signatur an (konfiguriert unter **Einstellungen → Allgemein**). Ersetzt automatisch gängige KI-generierte Platzhalter wie `[Your Name]`, `[Ihr Name]`, `[Vorname Nachname]`, `[Signature]` u. Ä. — kein verlorener Platzhalter bleibt zurück. |
211
+
|**Kopieren**| Kopiert das Ergebnis in die Zwischenablage. |
212
+
|**Einfügen & Schließen**| Fügt das Ergebnis direkt in die aktive Anwendung ein und schließt das Fenster. |
213
+
214
+
> [!NOTE]
215
+
> Signatur und eigener Preset-Text werden unter **Einstellungen → Allgemein** konfiguriert. Setze dort „Signatur für das Compose-Fenster" und aktiviere „Nach jeder Generierung automatisch anhängen", wenn die Signatur bei jedem Ergebnis ergänzt werden soll.
176
216
177
217
---
178
218
@@ -220,20 +260,21 @@ Das Tray-Kontextmenü gibt dir schnellen Zugriff auf alle Workflows, das Compose
220
260
221
261
---
222
262
223
-
## Hauptfenster (grafischer Fallback)
263
+
## Hauptfenster
224
264
225
-
Falls du keine Tastatur parat hast oder Hotkeys blockiert sind:
265
+
Das Hauptfenster ist dein grafisches Kontrollzentrum — nützlich, wenn Hotkeys blockiert sind oder du lieber mit der Maus arbeitest:
-**Maus-Steuerung:** Start/Stopp-Button für die Aufnahme.
234
-
-**Workflow-Menü:** Dropdown für alle 5 Modi.
235
-
-**Abbruch:** Verwirft eine Aufnahme sofort ohne Transkription.
236
-
-**Schnellzugriffe:** Diktat, Verlauf, Vorlesen und Einstellungen.
273
+
-**Workflow-Dropdown:** Alle 5 Aufnahmemodi zur Auswahl.
274
+
-**Start/Stopp-Button:** Klick zum Starten oder Beenden einer Aufnahme.
275
+
-**Abbruch:** Bricht die aktuelle Aufnahme ohne Transkription ab.
276
+
-**Diktat / Verlauf:** Schnellzugriff auf den Diktat-Modus und den Transkript-Verlauf.
277
+
-**Vorlesen / Einstellungen:** Öffnet das Vorlese-Fenster oder den Einstellungs-Dialog.
237
278
238
279
*Das Fenster öffnet sich beim Start sowie über den Tray-Eintrag **Fenster anzeigen** oder einen Klick auf das Tray-Icon. Schließen versteckt das Fenster nur — die App läuft im Tray weiter.*
239
280
@@ -254,7 +295,7 @@ Zusätzlich zu den Workflows bietet das Tool drei Komfort-Funktionen:
254
295
| :--- | :--- |
255
296
|**Diktat-Modus**| Umschalter. Ist er aktiv, werden alle Transkripte als Diktat-Einträge gesammelt und einzeln als Markdown-Datei gespeichert. Im Verlauf erscheint dann eine Schaltfläche **Zusammenführen**, die alle Einträge kombiniert und in die Zwischenablage kopiert. |
256
297
|**Verlauf…**| Öffnet ein Fenster mit den letzten Transkripten. Pro Eintrag: In Zwischenablage kopieren oder löschen. |
257
-
|**Vorlesen…**| Lässt dir beliebigen Text vorlesen — lokal per **Piper TTS** (Standard) oder optional über **OpenAI Cloud-TTS** (inklusive Anbieter-, Stimmen- und Modellauswahl)!|
298
+
|**Vorlesen…**| Lässt dir beliebigen Text vorlesen — lokal per **Piper TTS** (Standard) oder optional über **OpenAI Cloud-TTS** (inklusive Anbieter-, Stimmen- und Modellauswahl). Nutze die Schaltfläche **Exportieren**, um die Audioausgabe als Datei zu speichern.|
258
299
259
300
> [!NOTE]
260
301
> **Diktat-Notizen** werden ausschließlich in einen Ordner **innerhalb des Home-Verzeichnisses** geschrieben (Schutz gegen Pfad-Ausbruch), mit Berechtigungen `0o600`.
@@ -303,9 +344,16 @@ Der Einstellungs-Dialog hat drei Tabs:
303
344
"openai_api_key_env": "OPENAI_API_KEY",
304
345
"autopaste": true,
305
346
"audio_device": "@DEFAULT_SOURCE@",
347
+
"llm_provider": "openai",
348
+
"base_url": "",
349
+
"llm_model": "gpt-4o-mini",
350
+
"compose_signature": "",
351
+
"compose_signature_auto_append": false,
352
+
"compose_custom_preset_text": "",
306
353
"workflows": {
307
354
"text_improver_tone": "neutral",
308
-
"emoji_density": "mittel",
355
+
"writing_preset": "standard",
356
+
"emoji_density": "medium",
309
357
"dampf_system_prompt": ""
310
358
}
311
359
}
@@ -318,12 +366,17 @@ Der Einstellungs-Dialog hat drei Tabs:
318
366
-**hotkey_mode**:
319
367
-`toggle`: Einmal drücken startet, erneutes Drücken beendet.
320
368
-`hold`: Aufnahme läuft solange der Hotkey gedrückt wird.
321
-
-**openai_api_key_env**: Name der Umgebungsvariable für den OpenAI API-Key. Standard: `OPENAI_API_KEY`.
322
-
- Der eigentliche Key liegt nicht in `config.json`, sondern in `~/.config/blitztext-linux/secrets.env` oder einer bereits gesetzten Umgebungsvariable.
369
+
-**openai_api_key_env**: Name der Umgebungsvariable für den API-Key. Standard: `OPENAI_API_KEY`. Für OpenRouter: `OPENROUTER_API_KEY`.
370
+
-**llm_provider**: `openai` (Standard), `openrouter` oder `custom`.
371
+
-**base_url**: Eigene API-Base-URL. Leer = OpenAI-Standard. Für OpenRouter: `https://openrouter.ai/api/v1`.
372
+
-**llm_model**: Modellname beim Anbieter, z. B. `gpt-4o-mini` (OpenAI) oder `openai/gpt-4o` (OpenRouter).
323
373
-**autopaste**: Fügt per `ydotool` ein.
324
374
-**audio_device**: Name der Audioquelle.
375
+
-**compose_signature**: Signaturtext, der im Compose-Fenster angehängt wird.
376
+
-**compose_signature_auto_append**: Signatur nach jeder Generierung im Compose-Fenster automatisch anhängen (`true`/`false`).
377
+
-**compose_custom_preset_text**: Freier System-Prompt für die Option „Eigenes Preset…" im Compose-Fenster.
325
378
-**tts_provider**: TTS-Anbieter für „Vorlesen" — `piper` (lokal, Standard) oder `openai` (Cloud).
326
-
-**tts_openai_model** / **tts_openai_voice**: Modell und Stimme für OpenAI Cloud-TTS (Standard: `gpt-4o-mini-tts`, `marin`).
379
+
-**tts_openai_model** / **tts_openai_voice**: Modell und Stimme für OpenAI Cloud-TTS (Standard: `gpt-4o-mini-tts`, `nova`).
327
380
-**tts_openai_consent**: `true`, sobald die einmalige Datenschutz-Bestätigung für Cloud-TTS erteilt wurde. Standard: `false`.
328
381
-**workflows**: Feintuning von Tonalität (`text_improver_tone`), Schreibstil-Vorlage (`writing_preset`), Emojis (`emoji_density`) und dem Dampf-Prompt (`dampf_system_prompt`).
329
382
</details>
@@ -338,7 +391,7 @@ Wir lieben Stabilität! Führe die Tests lokal aus:
338
391
pytest
339
392
```
340
393
341
-
Mit `WHISPER_GUI_TESTS=1 QT_QPA_PLATFORM=offscreen pytest` laufen zusätzlich die GUI-Tests des Hauptfensters.
394
+
Mit `WHISPER_GUI_TESTS=1 QT_QPA_PLATFORM=offscreen pytest` laufen zusätzlich die GUI-Tests (Hauptfenster, Compose-Fenster).
342
395
343
396
<details>
344
397
<summary><b>Verzeichnisüberblick</b></summary>
@@ -349,15 +402,20 @@ Mit `WHISPER_GUI_TESTS=1 QT_QPA_PLATFORM=offscreen pytest` laufen zusätzlich di
349
402
│ ├── __init__.py
350
403
│ ├── audio_recorder.py # PulseAudio/PipeWire-Aufnahme via parec
@@ -367,7 +425,7 @@ Mit `WHISPER_GUI_TESTS=1 QT_QPA_PLATFORM=offscreen pytest` laufen zusätzlich di
367
425
368
426
-**Linux Exclusive:** Nur für Linux-Systeme.
369
427
-**Wayland Fokus:** Entwickelt für Wayland (`wl-clipboard`, `ydotool`).
370
-
-**Datenschutz:** Lokale Workflows bleiben zu 100% auf deinem Rechner. OpenAI wird nur bei Bedarf für LLM-Aufgaben kontaktiert.
428
+
-**Datenschutz:** Lokale Workflows bleiben zu 100% auf deinem Rechner. OpenAI oder OpenRouter wird nur bei Bedarf für LLM- oder Cloud-TTS-Aufgaben kontaktiert.
371
429
-**Sicherheit (`evdev` & `input` Gruppe):** Das Tool liest Input global über `/dev/input/event*`. Auf System-Ebene bedeutet dies, dass alle Prozesse des Benutzers Eingaben mitlesen könnten (Trade-off unter Wayland ohne XDG GlobalShortcuts). Nutzen Sie Blitztext nur in Umgebungen, denen Sie vertrauen!
372
430
-**Entwickler-Hinweis:** Dieses Projekt wurde mit Unterstützung künstlicher Intelligenz (AI-assisted) entworfen. Architektur, Code und Tests wurden manuell gesichtet und auf Funktion/Sicherheit lokal verifiziert.
0 commit comments