Voice-first web navigation for accessible browsing.
Sprachgesteuerte Webnavigation für barrierearmes Surfen.
QuackiQuacki lädt Webseiten, extrahiert ihre relevante Struktur und macht Titel, Überschriften, Textabsätze und Links über Sprache, Tastatur und eine zugängliche GUI navigierbar.
QuackiQuacki loads websites, extracts their useful structure, and makes titles, headings, paragraphs, and links navigable through speech, keyboard controls, and an accessible GUI.
QuackiQuacki begann 2013 als Clojure-Proof-of-Concept für sprachgesteuerte Webnavigation. Version 2 ist eine vollständige Modernisierung mit TypeScript, barrierearmer Browseroberfläche, sicherer serverseitiger Webseitenanalyse und lokaler neuronaler Sprachausgabe.
Die Anwendung bettet fremde Webseiten bewusst nicht direkt ein. Stattdessen lädt der lokale Server eine Seite, reduziert sie auf eine vorhersehbare Struktur und zeigt diese als navigierbaren Seitenbaum an. Dadurch werden störende Layouts, Iframe-Beschränkungen und unnötige Inhalte vermieden.
- Sprachbefehle auf Deutsch und Englisch
- Lokale neuronale Sprachausgabe mit Piper und Thorsten High
- Automatischer Windows-Sprachausgabe-Fallback
- Browser-Spracherkennung über die Web Speech API
- Extraktion von Titel, Beschreibung, Überschriften, Textabsätzen und Links
- Nummerierte Links für Sprachbefehle wie
Öffne Link drei - Navigation per Sprache, Maus, Tastatur oder Texteingabe
- Vor- und Zurücknavigation
- Moderner CLI-Modus mit denselben Navigationsbefehlen
- Schutz vor Zugriffen auf lokale oder private Netzwerkadressen
- Prüfung von Weiterleitungen und Begrenzung geladener HTML-Daten
- Responsive und kontrastreiche Benutzeroberfläche
- Windows 10 oder Windows 11
- Node.js 24 oder neuer
- Python 3.14 oder kompatibel
- Brave, Chrome oder ein anderer Chromium-basierter Browser für Spracherkennung
Die GUI und Sprachausgabe funktionieren auch ohne Browser-Spracherkennung. Befehle können jederzeit über das Textfeld eingegeben werden.
git clone https://github.com/akluth/quackiquacki.git
cd quackiquacki
git switch codex/modern-voice-gui
npm install
npm run install:pipernpm run install:piper installiert lokal:
- Piper TTS 1.4.2
- die deutsche neuronale Stimme
de_DE-thorsten-high
Die Laufzeit und das ungefähr 114 MB große Stimmenmodell werden unter .local/
abgelegt und nicht in Git eingecheckt.
Entwicklungsmodus:
npm run devAnschließend http://localhost:4173 öffnen.
Produktions-Build:
npm run build
npm startTerminalmodus:
npm run cli| Befehl | Wirkung |
|---|---|
Öffne example.com |
Öffnet und analysiert eine Webseite |
Titel vorlesen |
Liest Titel und Beschreibung vor |
Links vorlesen |
Liest die nummerierten Links vor |
Öffne Link drei |
Öffnet den dritten Link |
Seite vorlesen |
Liest die wichtigsten Seiteninhalte vor |
Zurück |
Öffnet die vorherige Seite |
Vor oder Weiter |
Öffnet die nächste Seite |
Wiederholen |
Wiederholt die letzte Sprachausgabe |
Stopp |
Stoppt Zuhören und Sprachausgabe |
Hilfe |
Zeigt die verfügbaren Befehle |
Zusätzliche Tastatursteuerung:
Leertaste: Spracherkennung starten oder stoppen, solange kein Bedienelement fokussiert istEscape: Sprachausgabe stoppen
Piper läuft als persistenter Hintergrundprozess. Das Stimmenmodell wird beim Serverstart einmal geladen und bleibt anschließend im Speicher. Folgesätze werden während der aktuellen Wiedergabe vorausberechnet, damit die Ausgabe schnell beginnt und möglichst flüssig bleibt.
Falls Piper nicht installiert ist oder nicht gestartet werden kann, verwendet QuackiQuacki unter Windows automatisch die installierte deutsche Systemstimme.
Der Seitenabruf blockiert:
localhostund Loopback-Adressen- private IPv4- und IPv6-Netze
- Link-Local-Adressen
- URLs mit eingebetteten Zugangsdaten
- Protokolle außerhalb von HTTP und HTTPS
- Weiterleitungen auf blockierte Ziele
- Nicht-HTML-Inhalte und übermäßig große Antworten
QuackiQuacki ist trotzdem kein vollständiger Webbrowser oder Sicherheits-Sandbox. Öffne nur Webseiten, denen du vertraust.
| Pfad | Inhalt |
|---|---|
client/ |
GUI, Sprachsteuerung und Audio-Wiedergabe |
server/ |
HTTP-Server, sicherer Seitenabruf, Extraktion und TTS-Endpunkt |
shared/ |
Gemeinsame Typen und Befehlsparser |
cli/ |
Terminaloberfläche |
scripts/ |
Piper-Installation und persistenter Piper-Worker |
npm test
npm run build
npm audit --audit-level=lowEs ist keine Stimme zu hören
- Rechtsklick auf den Brave-Tab und prüfen, ob die Website stummgeschaltet ist.
- In der Kommandobrücke auf
Stimme testenklicken. - Prüfen, ob
npm run install:pipererfolgreich ausgeführt wurde. - Den Entwicklungsserver neu starten.
Piper startet nicht
npm run install:piperDanach kontrollieren, ob .local/piper-runtime und
.local/piper-voices/de_DE-thorsten-high existieren.
Eine Webseite kann nicht geladen werden
Einige Webseiten blockieren automatisierte Abrufe. Lokale und private Netzwerkziele werden aus Sicherheitsgründen immer abgelehnt.
QuackiQuacki started in 2013 as a Clojure proof of concept for voice-controlled web navigation. Version 2 is a complete modernization using TypeScript, an accessible browser interface, secure server-side page analysis, and local neural speech synthesis.
The application intentionally does not embed third-party websites. Its local server loads a page, reduces it to a predictable structure, and presents it as a navigable page tree. This avoids noisy layouts, iframe restrictions, and irrelevant content.
- German and English voice commands
- Local neural speech synthesis using Piper and Thorsten High
- Automatic Windows speech fallback
- Browser speech recognition through the Web Speech API
- Extraction of titles, descriptions, headings, paragraphs, and links
- Numbered links for commands such as
Open link three - Navigation by voice, mouse, keyboard, or text input
- Back and forward history
- Modern CLI mode using the same navigation commands
- Protection against local and private network requests
- Redirect validation and HTML response size limits
- Responsive, high-contrast user interface
- Windows 10 or Windows 11
- Node.js 24 or newer
- Python 3.14 or compatible
- Brave, Chrome, or another Chromium-based browser for speech recognition
The GUI and speech output still work without browser speech recognition. Commands can always be entered through the text input.
git clone https://github.com/akluth/quackiquacki.git
cd quackiquacki
git switch codex/modern-voice-gui
npm install
npm run install:pipernpm run install:piper installs locally:
- Piper TTS 1.4.2
- the German neural voice
de_DE-thorsten-high
The runtime and approximately 114 MB voice model are stored under .local/ and are
not committed to Git.
Development mode:
npm run devThen open http://localhost:4173.
Production build:
npm run build
npm startTerminal mode:
npm run cli| Command | Action |
|---|---|
Open example.com |
Opens and analyzes a website |
Read title |
Reads the title and description |
Read links |
Reads the numbered links |
Open link three |
Opens the third link |
Read page |
Reads the most relevant page content |
Back |
Opens the previous page |
Forward |
Opens the next page |
Repeat |
Repeats the previous speech output |
Stop |
Stops listening and speech output |
Help |
Shows the available commands |
Additional keyboard controls:
Space: start or stop speech recognition while no control is focusedEscape: stop speech output
Piper runs as a persistent background process. The voice model is loaded once when the server starts and remains in memory. Following sentences are prepared while the current audio is playing, allowing speech to begin quickly and continue smoothly.
If Piper is not installed or cannot be started, QuackiQuacki automatically uses the installed German Windows system voice.
The page fetcher blocks:
localhostand loopback addresses- private IPv4 and IPv6 networks
- link-local addresses
- URLs containing credentials
- protocols other than HTTP and HTTPS
- redirects to blocked targets
- non-HTML content and excessively large responses
QuackiQuacki is still not a complete web browser or security sandbox. Only open websites you trust.
| Path | Purpose |
|---|---|
client/ |
GUI, speech controls, and audio playback |
server/ |
HTTP server, secure page fetching, extraction, and TTS endpoint |
shared/ |
Shared types and command parser |
cli/ |
Terminal interface |
scripts/ |
Piper installation and persistent Piper worker |
npm test
npm run build
npm audit --audit-level=lowNo speech can be heard
- Right-click the Brave tab and verify that the website is not muted.
- Click
Stimme testenin the command panel. - Verify that
npm run install:pipercompleted successfully. - Restart the development server.
Piper does not start
npm run install:piperThen verify that .local/piper-runtime and
.local/piper-voices/de_DE-thorsten-high exist.
A website cannot be loaded
Some websites block automated requests. Local and private network targets are always rejected for security reasons.
Copyright (C) 2013-2026 Alexander Kluth
QuackiQuacki is free software licensed under the GNU General Public License, version 3 or later.