Zum Hauptinhalt springen
Startseite / Portfolio / Offline-Sprachdiktat
Audio-KI

Offline-Sprachdiktat

Systemweites Push-to-Talk-Diktat, ohne Netzwerk

Gebaut von Rogue AI · Systemweites Push-to-Talk auf Windows · Komplett offline

Erste Push-to-Talk-Version: Januar 2026 mit whisper.cpp tiny. F9-Hotkey + uIOhook-Integration im Februar, sobald globales Key-Capture über alle Fokus-Kontexte zuverlässig lief. Seitdem im täglichen Einsatz.

Offline-Sprachdiktat — Systemweites Push-to-Talk-Diktat, ohne Netzwerk

Das Problem

Windows Voice Access ist cloud-basiert, unzuverlässig und verliert Kontext. Dritt-Tools verlangen entweder ein Abo oder schicken jedes gesprochene Wort auf einen fremden Server. Für vertrauliche Arbeit — Kundennotizen, medizinisch, rechtlich, Security-Research — geht beides nicht.

Was ich gebaut habe

Eine Electron-Tray-App, die einen globalen Hotkey registriert (Standard F9). F9 halten, sprechen, loslassen — der transkribierte Text erscheint in der gerade aktiven Anwendung, wo auch immer der Cursor steht. Kein Internet nötig. Keine Telemetrie. Kein Abo.

Architektur

Tray-Prozess
Electron, minimale UI, persistentes Tray-Icon, globale Konfiguration
Hotkey-Hook
uIOhook für echtes System-globales Key-Capture (funktioniert auch, wenn kein Fenster fokussiert ist)
Audio-Capture
Node.js-Audio-Input, 16 kHz Mono PCM, aufgenommen während der Hotkey gehalten wird
Transkription
whisper.cpp mit GPU-Beschleunigung (CUDA / Metal / CPU-Fallback), konfigurierbare Modellgröße (tiny/base/small/medium)
Textnormalisierung
Satzzeichen-Wiederherstellung, Korrektur häufiger Phrasen, konfigurierbares Wörterbuch
Ausgabe
Per Zwischenablage in die aktive Anwendung, oder simulierte Tastatureingaben für Apps, die Paste blockieren

Tech-Stack

ElectronNode.jsTypeScriptwhisper.cppuIOhookWASAPI

Was zuerst gebrochen ist

  • uIOhook-Native-Bindings auf Windows sind ein Build-Chain-Kaninchenbau — node-gyp + die richtige Windows-SDK-Version + Python 3.11 (nicht 3.12, nicht 3.10). Den exakten Befehl in der README dokumentiert, weil ich ihn zweimal vergessen hatte.

  • whisper.cpp 'medium' ist der Sweet-Spot für Englisch auf einer Consumer-GPU. 'small' ist schnell, verliert aber Fachbegriffe; 'large-v3' ist genau, aber die Latenz macht die UX kaputt. Medium + Q5-Quant auf einer 4070 ist unter einer Sekunde für kurze Phrasen.

  • Zwischenablage-Paste schlägt in Slack und Zoom still fehl — die fangen Strg+V ab. Fallback ergänzt, der Tastatureingaben simuliert, wenn Paste nicht innerhalb 200 ms sichtbar ankommt.

Ergebnis

F9 in jeder Anwendung — Terminal, Browser, E-Mail, Texteditor — sprechen, loslassen, Text ist da. Keine Netzwerk-Calls. Keine Cloud. Tägliche Nutzung für technische Notizen und längere Texte. Median-Latenz unter einer Sekunde pro Phrase auf Consumer-GPU.

Ehrliche Grenzen

Englisch-getunt. Deutsches Diktat funktioniert, aber Satzzeichen-Wiederherstellung ist grob — okay für Notizen, nicht für Client-Texte ohne zweiten Blick. Kein Custom-Vocabulary-Training (whisper.cpp legt das nicht sauber offen). Latenz unter einer Sekunde auf aktueller GPU, aber 2-3 s auf reiner CPU — okay für kurze Phrasen, schmerzhaft für Absätze.

Verwandte Beiträge

← Zurück zum Portfolio