diff --git a/.gitignore b/.gitignore index 7934cb7..1fbc15f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ __pycache__/ .env.* secrets.env .venv/ +scratch/ +prototypes/ diff --git a/README.de.md b/README.de.md index 26336fd..f6fa322 100644 --- a/README.de.md +++ b/README.de.md @@ -38,7 +38,7 @@ Blitztext Linux ist ein Hotkey-gesteuerter Sprachassistent, der gesprochene Spra ## Features - **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). -- **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. +- **Compose-Fenster:** Text eintippen, einfügen oder hineindiktieren, eine Text-Aktion wählen und von der KI umschreiben lassen — ganz ohne Mikrofon. Mit Tonfall-Auswahl, eigener Anweisung samt Prompt-Prüfung, Varianten-Navigation und Signatur-Unterstützung. - **OpenRouter & eigene LLM-Endpunkte:** Nutze OpenRouter oder eine beliebige OpenAI-kompatible API als Alternative zu OpenAI für alle KI-Workflows. - **Audio-Export:** Speichere die Ausgabe der Vorlesefunktion direkt als Audiodatei. - **Eigennamen / Begriffe:** Erweitere das Vokabular der KI um eigene Begriffe, Namen oder Fachwörter für perfekte Transkriptionen. @@ -53,21 +53,21 @@ Blitztext registriert globale Hotkeys via `evdev`. Mit diesen Kombinationen hast | Workflow | Hotkey | LLM? | Beschreibung | | :--- | :--- | :---: | :--- | -| **Blitztext** | Alt (halten) | ❌ | Standard: Nimmt auf, solange die Taste gehalten wird, transkribiert und fügt den Text ein. Sehr kurze Tastendrücke unter 150 ms werden im Halten-Modus als Fehldruck verworfen. Aufnahmetaste und Halten/Umschalten-Modus sind unter **Einstellungen → Spracherkennung** konfigurierbar. | -| **Blitztext Lokal** | Meta + Shift + H | ❌ | Erzwingt eine reine **Offline-Transkription**. | -| **Blitztext+** | Meta + Shift + T | ✅ | Formuliert deine Aufnahme professionell via LLM um. | -| **Blitztext $%&!** | Meta + Shift + D | ✅ | Emotionale Entladung: Wandelt Frust in eine sachliche Nachricht um. | -| **Blitztext :)** | Meta + Shift + E | ✅ | Ergänzt deine Nachricht passend mit Emojis. | +| **Diktieren** | Alt (halten) | ❌ | Standard: Nimmt auf, solange die Taste gehalten wird, transkribiert und fügt den Text ein. Sehr kurze Tastendrücke unter 150 ms werden im Halten-Modus als Fehldruck verworfen. Aufnahmetaste und Halten/Umschalten-Modus sind unter **Einstellungen → Spracherkennung** konfigurierbar. | +| **Diktieren · lokal** | Meta + Shift + H | ❌ | Erzwingt eine reine **Offline-Transkription**. | +| **Diktieren & verbessern** | Meta + Shift + T | ✅ | Transkribiert und schreibt das Ergebnis mit der gewählten Text-Aktion um. | +| **Sachlich formulieren** | Meta + Shift + D | ✅ | Emotionale Entladung: Wandelt Frust in eine sachliche Nachricht um. | +| **Emojis ergänzen** | Meta + Shift + E | ✅ | Ergänzt deine Nachricht passend mit Emojis. | > [!NOTE] -> **LLM-Workflows** (`Blitztext+`, `Blitztext $%&!`, `Blitztext :)`) setzen einen gültigen **API-Key** voraus. Siehe [Secrets](#secrets) weiter unten für die Konfiguration. Ohne diesen Key sind diese Funktionen im Menü und über die Hotkeys deaktiviert bzw. führen zu einer Fehlermeldung. +> **LLM-Workflows** (`Diktieren & verbessern`, `Sachlich formulieren`, `Emojis ergänzen`) setzen einen gültigen **API-Key** voraus. Siehe [Secrets](#secrets) weiter unten für die Konfiguration. Ohne diesen Key sind diese Funktionen im Menü und über die Hotkeys deaktiviert bzw. führen zu einer Fehlermeldung. ### KI-Workflows -Die KI-Workflows helfen bei Formulierung, Ton und Emojis. Die passenden Einstellungen findest du unter **Einstellungen → KI-Workflows**: +Die KI-Workflows helfen bei Formulierung, Ton und Emojis. Die passenden Einstellungen findest du unter **Einstellungen → Text & KI**:
+
+
+
+
-
+ ![]() + Bereit + Wartet auf Sprach- oder Mausklick-Eingabe. + |
+
+ ![]() + Aufnahme + Laufender Timer und Audiowellen-Balken. + |
+
+ ![]() + Verarbeitung + Rotierender goldener Fortschrittsring. + |
+
+ ![]() + Aktions-Menü + Workflows und Schnellzugriff direkt am Widget. + |
+
+
+
-
+
-
+
Your local AI voice assistant for Linux desktops on Wayland
@@ -38,7 +38,7 @@ Blitztext Linux is a hotkey-driven voice assistant that turns speech into text a ## Features - **Multilingual interface (EN/DE):** Switch the app interface between German and English under **Settings → General → "Interface language"** (takes effect after restarting the app). -- **Compose window:** Type or paste any text, select a workflow and writing style, and let the AI rewrite it — no microphone needed. Includes tone selector, custom preset, variant history, and signature support. +- **Compose window:** Type, paste, or dictate any text, pick a text action, and let the AI rewrite it — no microphone needed. Includes tone selector, custom instruction with prompt inspection, variant navigation, and signature support. - **OpenRouter & custom LLM endpoints:** Use OpenRouter or any OpenAI-compatible API as an alternative to OpenAI for all AI workflows. - **Audio export:** Save read-aloud output as an audio file directly from the Read Aloud window. - **Custom names / terms:** Extend the AI's vocabulary with your own terms, names, or technical words for perfect transcriptions. @@ -53,21 +53,21 @@ Blitztext registers global hotkeys via `evdev`. With these combinations you have | Workflow | Hotkey | LLM? | Description | | :--- | :--- | :---: | :--- | -| **Blitztext** | Alt (hold) | ❌ | Default: records while the key is held, transcribes, and pastes the text. Very short presses below 150 ms are discarded as accidental taps in hold mode. Recording key and hold/toggle mode are configurable under **Settings → Speech Recognition**. | -| **Blitztext Local** | Meta + Shift + H | ❌ | Forces a pure **offline transcription**. | -| **Blitztext+** | Meta + Shift + T | ✅ | Rephrases your recording professionally via LLM. | -| **Blitztext $%&!** | Meta + Shift + D | ✅ | Emotional release: turns frustration into a matter-of-fact message. | -| **Blitztext :)** | Meta + Shift + E | ✅ | Enriches your message with fitting emojis. | +| **Dictate** | Alt (hold) | ❌ | Default: records while the key is held, transcribes, and pastes the text. Very short presses below 150 ms are discarded as accidental taps in hold mode. Recording key and hold/toggle mode are configurable under **Settings → Speech Recognition**. | +| **Dictate · local** | Meta + Shift + H | ❌ | Forces a pure **offline transcription**. | +| **Dictate & improve** | Meta + Shift + T | ✅ | Transcribes and rewrites the result with the selected text action. | +| **Make it factual** | Meta + Shift + D | ✅ | Emotional release: turns frustration into a matter-of-fact message. | +| **Add emojis** | Meta + Shift + E | ✅ | Enriches your message with fitting emojis. | > [!NOTE] -> **LLM workflows** (`Blitztext+`, `Blitztext $%&!`, `Blitztext :)`) require a valid **API key**. See [Secrets](#secrets) below for how to configure it. Without a key, these functions are disabled in the menu and via hotkeys, or result in an error message. +> **LLM workflows** (`Dictate & improve`, `Make it factual`, `Add emojis`) require a valid **API key**. See [Secrets](#secrets) below for how to configure it. Without a key, these functions are disabled in the menu and via hotkeys, or result in an error message. ### AI workflows -The AI workflows help with phrasing, tone, and emojis. You'll find the relevant settings under **Settings → AI Workflows**: +The AI workflows help with phrasing, tone, and emojis. You'll find the relevant settings under **Settings → Text & AI**:
+
+
+
+
-
+ ![]() + Idle + Ready, standing by for input. + |
+
+ ![]() + Recording + Live timer and stereo wave bars. + |
+
+ ![]() + Processing + Animated gold spinning ring. + |
+
+ ![]() + Options menu + Workflows and quick actions. + |
+
+
+
-
+