export function TabOverview() { return (
{`
┌──────────────────────────────────────────────────────────────────┐
│ LEHRERGERAET (PWA / App) │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ VoiceCapture.tsx │ voice-encryption.ts │ voice-api.ts │ │
│ │ Mikrofon │ AES-256-GCM │ WebSocket Client │ │
│ └────────────────────────────────────────────────────────────┘ │
└───────────────────────────┬──────────────────────────────────────┘
│ WebSocket (wss://)
▼
┌──────────────────────────────────────────────────────────────────┐
│ VOICE SERVICE (Port 8091) │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ main.py │ streaming.py │ sessions.py │ tasks.py │ │
│ └────────────────────────────────────────────────────────────┘ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ task_orchestrator.py │ intent_router.py │ encryption │ │
│ └────────────────────────────────────────────────────────────┘ │
└───────────────────────────┬──────────────────────────────────────┘
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ PersonaPlex-7B │ │ Ollama Fallback │ │ Valkey Cache │
│ (A100 GPU) │ │ (Mac Mini) │ │ (Sessions) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
`}
PersonaPlex-7B (NVIDIA)
Full-Duplex Speech-to-Speech
Lizenz: MIT + NVIDIA Open Model
TaskOrchestrator
Task State Machine
Lizenz: Proprietary
Mimi (24kHz, 80ms)
Low-Latency Streaming
Lizenz: MIT
| Datei | Beschreibung |
|---|---|
| voice-service/main.py | FastAPI Entry, WebSocket Handler |
| voice-service/services/task_orchestrator.py | Task State Machine |
| voice-service/services/intent_router.py | Intent Detection (22 Types) |
| voice-service/services/encryption_service.py | Namespace Key Management |
| studio-v2/components/voice/VoiceCapture.tsx | Frontend Mikrofon + Crypto |
| studio-v2/lib/voice/voice-encryption.ts | AES-256-GCM Client-side |