# Claude's Eyes - Audio Bridge Konfiguration v2 # # NEUE ARCHITEKTUR: # - Claude (im Browser-Chat) steuert den Roboter SELBST via web_fetch # - Diese Bridge macht NUR Audio (TTS/STT) und Heartbeat # # Kopiere zu config.local.yaml und passe an! # ============================================================================ # Chat Interface (Selenium Browser) # ============================================================================ chat: # Die URL zu deinem Claude.ai Chat # WICHTIG: Das muss die URL eines bestehenden Chats sein! # Beispiel: https://claude.ai/chat/abc123-def456-... url: "https://claude.ai/chat/21ac7549-1009-44cc-a143-3e4bd3c64b2d" # Browser im Hintergrund? (false = du siehst das Fenster) headless: false # Chrome Profil-Ordner für persistente Sessions # Wenn gesetzt, bleibt der Login gespeichert user_data_dir: "./chrome_profile" # Für Termux/Android: Pfad zur Chrome/Chromium Binary # chrome_binary: "/data/data/com.termux/files/usr/bin/chromium" # ============================================================================ # Heartbeat - Hält Claude am Leben # ============================================================================ heartbeat: # Automatische TICKs aktivieren? # false = keine automatischen TICKs, du sendest [TICK] manuell im Chat (Debug-Modus) # true = normale Funktion, TICKs werden automatisch gesendet auto_tick: true # Bilder mit TICKs hochladen? # true = Bei jedem TICK wird ein Bild vom ESP32 geholt und in den Chat hochgeladen # false = Nur [TICK] ohne Bild (für Debug ohne ESP32) upload_images: true # Ablauf: Warten bis Claude fertig → zufällige Pause → Bild holen → TICK senden # So werden keine TICKs gesendet während Claude noch tippt! # Pause nach Claudes Antwort (zufällig zwischen min und max) min_pause: 2 max_pause: 4 # Wie oft prüfen ob Claude noch tippt (Sekunden) check_interval: 1 # Nach wie vielen Fehlern in Folge stoppen? max_consecutive_errors: 5 # ============================================================================ # Text-to-Speech (Claudes Stimme) # ============================================================================ tts: # Engine: "pyttsx3" (offline), "gtts" (Google, online), "termux" (Android) engine: "gtts" # Sprache language: "de" # Sprechgeschwindigkeit # pyttsx3: Wörter pro Minute (100-200) # gtts: nicht unterstützt # termux: 0.5-2.0 (1.0 = normal) rate: 150 # Lautstärke (nur pyttsx3) volume: 0.9 # Stimme (nur pyttsx3) - null = System-Default # Beispiel: "german" oder "de" für deutsche Stimme voice: null # ============================================================================ # Speech-to-Text (Stefans Mikrofon) # ============================================================================ stt: # Engine: "standard" (SpeechRecognition) oder "termux" (Android) engine: "standard" # Erkennungsdienst (nur für standard engine) # "google" (online, gut) oder "sphinx" (offline, mäßig) service: "google" # Sprache language: "de-DE" # Energie-Schwelle für Spracherkennung # Niedriger = empfindlicher (300 ist Standard) energy_threshold: 300 # Pause-Schwelle in Sekunden # Wie lange Stille bevor ein Satz als beendet gilt pause_threshold: 0.8 # Maximale Aufnahmelänge pro Phrase in Sekunden # Bei langen Sätzen höher setzen (max 2 Minuten = 120s) phrase_time_limit: 120 # ============================================================================ # Termux (Android) Einstellungen # ============================================================================ termux: # Nutze Termux:API für TTS/STT statt Python-Libraries # Setzt engine in tts/stt automatisch auf "termux" use_termux_api: false # ============================================================================ # ESP32 Roboter (Referenz für Claude's web_fetch Aufrufe) # ============================================================================ # HINWEIS: Diese Werte nutzt CLAUDE direkt im Chat, nicht die Bridge! # Du musst Claude die URL und den API-Key im Chat mitteilen. esp32: # IP-Adresse oder Hostname des Roboters host: "mobil.hacker-net.de" port: 80 # API-Key für Authentifizierung api_key: "claudes_eyes_secret_2025" # Für Zugriff von außen: DynDNS, Tailscale, oder Port-Forward nötig # external_url: "https://mein-roboter.dyndns.org" # ============================================================================ # Logging # ============================================================================ logging: # Level: DEBUG, INFO, WARNING, ERROR level: "INFO" # Log-Datei (relativ zum Script-Verzeichnis) file: "bridge.log"