architecture.md 2.4 KB

System-Architektur

Revision: r1 Source: CLAUDE.md, Sections: Architecture, Directory Structure Last updated: 2026-01-31 12:35


Betriebsmodi

Modus Beschreibung Einstiegspunkt
Server Zentrale Steuerung: Satellites, Plugins, Events, ML-Inferenz python3 main.py server
Client Leichtgewichtiger Satellite mit Wakeword-Erkennung python3 main.py client
Standalone All-in-One ohne Server python3 main.py standalone
Train ML-Trainer für Wakeword/Voice-Recognition python3 main.py train

Service Container Pattern

Alle Hauptkomponenten erben von IService:

class IService(ABC):
    PRIORITY: ServicePriority  # CRITICAL, CORE, NETWORK, MANAGER, PLUGIN, OPTIONAL
    GROUP: ServiceGroup        # Kategorisierung
    DEPENDENCIES: list[str]    # Erforderliche Services

    # Lifecycle Hooks
    async def on_pre_start() -> None
    async def on_post_start() -> None
    async def on_pre_stop() -> None
    async def on_post_stop() -> None
    async def on_dependency_ready(name: str) -> None

Startreihenfolge: Prioritätsbasiert (niedrigerer Wert = früher), mit Abhängigkeitsauflösung.

Event-Driven System

Zentrales Pub/Sub mit Prioritäten:

Priorität Wert Verwendung
SYSTEM 0 Kann Events abbrechen
HIGHEST 10 Höchste Benutzer-Priorität
HIGH 20 Hohe Priorität
NORMAL 30 Standard
LOW 40 Niedrige Priorität
LOWEST 50 Niedrigste Priorität
MONITOR 100 Nur beobachten, empfängt auch abgebrochene Events
@TrixyEvent(["wakeword_received", "satellite_connected"])
def on_events(self, event_name: str, event_data: EventData):
    pass

Netzwerk-Architektur

4 Ports für verschiedene Datenströme:

Port Socket Richtung Format
2101 Command Bidirektional AES-256-GCM verschlüsselt
2102 Audio In Satellite → Server 16KHz mono PCM
2103 Audio Out Server → Satellite 16KHz mono PCM
2104 Music Server → Satellite 48KHz stereo

Tech Stack

  • Sprache: Python 3.10+
  • ML Framework: PyTorch
  • Audio: 16KHz, 16-bit PCM mono
  • Features: Log-Mel-Spectrogram
  • Verschlüsselung: AES-256-GCM

See also: modules.md, integrations.md