Skip to content

Repository files navigation

Soundbite

Soundbite ist eine Desktop-App zum Aufnehmen von Sprachnotizen, Echtzeit-Transkription und KI-gestützten Anreicherung – dein „Second Brain“ für Voice-to-Text.


Kurzbeschreibung

Soundbite ermöglicht es, per Mikrofon zu sprechen, den Text live zu transkribieren und anschließend mit Claude zu strukturieren und zu erweitern. Die App läuft als native Desktop-Anwendung (macOS & Windows) mit Tauri, bietet einen konfigurierbaren globalen Hotkey und speichert Notizen sowie Einstellungen lokal.

Kernfunktionen:

  • Sprachnotizen aufnehmen mit Echtzeit-Transkription
  • Anreicherung des Transkripts durch Claude (Zusammenfassung, Struktur, Kontext)
  • Notizen-Übersicht und -Detailansicht
  • Titel nachträglich bearbeiten: In der linken Spalte per Doppelklick auf den Chat-Titel den angezeigten Namen ändern (Enter oder Klick außerhalb speichert, Escape bricht ab)
  • Konfigurierbarer Hotkey (z. B. Ctrl+Shift+V) zum Starten der Aufnahme – auch wenn die App im Hintergrund ist
  • Einstellungen: API-Keys, Speicherort, Hotkey, Claude-Modell

Architektur-Überblick

Tech-Stack

Schicht Technologie
Desktop-Hülle Tauri 2 (Rust)
Frontend React 18, Vite 5
Styling Tailwind CSS
Icons Lucide React

Integrierte AI-Dienste

  1. ElevenLabs

    • Speech-to-Text (Batch): Transkription der aufgezeichneten Audio-Datei nach dem Stoppen.
    • Speech-to-Text Realtime: Live-Transkription während der Aufnahme per WebSocket (scribe_v2 / scribe_v2_realtime).
    • API: REST für Batch, WebSocket für Realtime; API-Key wird in den Einstellungen hinterlegt.
  2. Anthropic Claude

    • Text-Anreicherung: Das Transkript wird an die Messages API gesendet; Claude erstellt eine Zusammenfassung und bereichert den Inhalt (Struktur, Kontext).
    • Modelle: Konfigurierbar (z. B. Claude Sonnet 4.5, 3.5 Sonnet, Haiku); Fallback auf andere Modelle bei Fehlern.
    • Anbindung: Direkte REST-Calls über einen Vite-Proxy (/api/anthropicapi.anthropic.com), um CORS zu umgehen.

Projektstruktur (ausgewählt)

soundbite/
├── src/                    # Frontend (React)
│   ├── App.jsx             # Routing Onboarding / Dashboard / Settings
│   ├── Dashboard.jsx       # Aufnahme, Notizenliste, Chat-Ansicht
│   ├── Onboarding.jsx      # Ersteinrichtung (API-Keys, Speicherort, Hotkey)
│   ├── Settings.jsx        # Einstellungen
│   ├── components/         # z. B. HotkeyInput
│   └── utils/              # api.js, storage.js, realtimeTranscription.js, …
├── src-tauri/              # Tauri (Rust)
│   ├── src/lib.rs          # Plugins (Dialog, Global Shortcut), Command für macOS-Bedienungshilfen
│   ├── capabilities/       # Berechtigungen (Fenster, Dialog, Global Shortcut)
│   └── tauri.conf.json     # App-Metadaten, Build, Bundle
├── vite.config.js          # Vite + Proxy für Anthropic
└── package.json

Datenfluss

  • Einstellungen & Notizen: Persistenz im localStorage (im Tauri-WebView pro App-Instanz).
  • Aufnahme: Mikrofon → MediaRecorder + ElevenLabs Realtime WebSocket → Transkript.
  • Anreicherung: Transkript → Anthropic Messages API (per Proxy) → angereicherter Markdown-Text.
  • Hotkey: Tauri Plugin „global-shortcut“ registriert z. B. Ctrl+Shift+V / Cmd+Shift+V; bei Druck: Fenster in den Vordergrund + Start der Aufnahme.

Setup-Anleitung

Voraussetzungen

  • Node.js (LTS, z. B. 18 oder 20)
  • Rust (z. B. über rustup)
  • npm (mit Node mitgeliefert)

Installation und Start

  1. Repository klonen

    git clone https://github.com/<dein-username>/soundbite.git
    cd soundbite
  2. Abhängigkeiten installieren

    npm install
  3. App im Entwicklungsmodus starten

    npm run tauri dev

    Startet Vite (Frontend) und öffnet das Soundbite-Fenster.

  4. Ersteinrichtung in der App

    • Onboarding: ElevenLabs- und Anthropic-API-Keys eintragen, optional Speicherort und Hotkey setzen.
    • Keys werden nur lokal gespeichert und für die Aufrufe an ElevenLabs bzw. Anthropic verwendet.

Produktiv-Build (lokal)

npm run tauri build
  • macOS: z. B. .app und .dmg unter src-tauri/target/release/bundle/
  • Windows: Auf Windows (oder per CI) bauen, um eine .msi-Installer zu erzeugen.

Ausführliche Build-Optionen (inkl. GitHub Actions für Mac + Windows): siehe BUILD.md.

Hotkey auf dem Mac

Damit der globale Hotkey funktioniert, muss Soundbite unter Systemeinstellungen → Datenschutz & Sicherheit → Bedienungshilfen aktiviert sein. In der App unter Einstellungen → Tastenkürzel gibt es einen Hinweis und einen Button, der direkt dorthin führt. Weitere Details: TAURI-SETUP.md.


Design-Entscheidungen

Thema Entscheidung Begründung
Desktop-Framework Tauri 2 Kleiner Footprint, Rust-Backend, ein Codebase für macOS und Windows, Zugriff auf Systemfunktionen (Fenster, Dialog, globaler Shortcut).
Frontend React + Vite Bewährter Stack, schnelles Dev-Setup, gute DX; Vite-Proxy für Anthropic ohne eigenes Backend.
Kein eigenes Backend API-Calls aus dem Frontend Einfacherer Aufbau; API-Keys liegen nur im Frontend (localStorage). Für Mehrnutzer oder zentrale Speicherung wäre später ein Backend nötig.
Persistenz localStorage Ausreichend für eine lokale Single-User-App; Daten bleiben im Tauri-WebView erhalten. Persistenz des Speicherortes (Ordner) ist konfigurierbar, physische Dateien auf Disk werden aktuell nicht geschrieben.
Hotkey Tauri Plugin „global-shortcut“ Ermöglicht Aufnahme-Start von überall; Format-Anpassung (z. B. ctrl+shift+KeyV / super+shift+KeyV) für Kompatibilität mit der global-hotkey-Crate.
Hotkey-Eingabe Eigene Komponente „Tasten drücken“ Nutzer wählt die Kombination durch Drücken statt manuelles Tippen; weniger Tippfehler, klare UX.
macOS Bedienungshilfen Hinweis + Command zum Öffnen der Systemeinstellungen Globale Shortcuts unter macOS erfordern diese Berechtigung; direkter Link reduziert Abbrüche bei der Einrichtung.
Anthropic-Anbindung Proxy in Vite CORS-Vorgaben von Anthropic; Proxy nur in Dev. Für gebaute Tauri-App können Requests je nach Konfiguration weiter über den Proxy oder später über ein kleines Backend laufen.
UI Tailwind + Lucide Schnelles, konsistentes Styling ohne große Design-Bibliothek; Lucide für einheitliche Icons.

Weitere Dokumentation

  • BUILD.md – Build und GitHub Actions (Mac/Windows)
  • TAURI-SETUP.md – Tauri-Details, Hotkey (macOS), optionale Erweiterungen
  • SCREENS.md – Beschreibung der Screens und Abläufe

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages