Vier unabhaengige Ursachen fuer 'erst beim zweiten Aufnehmen' bzw. 'wird gar
nicht verarbeitet' (server-/box-seitig, ohne App-Update wirksam):
1) rvs/server.js: stt_lease, stt_lease_request, stt_transcribe_blob,
stt_transcribe_result und chat_ack fehlten in ALLOWED_TYPES und wurden STILL
verworfen (dieselbe Falle wie bei worker_*/host_*). Folgen: das Lease lief
immer in den 250ms-Timeout -> jede Aufnahme startete verspaetet und OHNE
targetInstance nahmen alle STT-Worker dieselbe Session an (doppelte
stt_endpoint); chat_ack kam nie an -> getippte Nachrichten galten in der App
nach 3 Versuchen als fehlgeschlagen, obwohl sie verarbeitet waren.
2) xtts/whisper/bridge.py: Beim Kaltstart wurde die Session erst NACH dem
Modell-Load angelegt — alle Chunks der ersten Aufnahme liefen ins Leere und
der Take war weg (die zweite klappte, weil das Modell dann warm war). Session
wird jetzt sofort angelegt, der Endpointer wartet solange (runner.model None).
3) bridge/aria_bridge.py: Text-Dedup-Fenster 5s -> 1.5s. Es soll nur den
Zwilling zweier Worker abfangen; mit 5s fielen echte Wiederholungen weg —
also genau das Nachsprechen nach einem verschluckten Take, und kurze
Kommandos ('lauter', 'nächstes').
4) bridge/aria_bridge.py Voice-Router: Komma als Prefix-Trenner entfernt (nur
noch ':' und '-'), Fuzzy-Schwelle 0.6 -> 0.82, Sticky wird nicht mehr bei
jeder Nachricht verlaengert. Vorher matchten normale Saetze wie 'In Ordnung,
mach mal ...' als Projekt-Prefix: die Nachricht landete still in einem
Projekt und war im Hauptchat unsichtbar — verifiziert mit Beispielsaetzen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
xtts — AI-Box (Compute-Node) Setup & Bootstrap
Der xtts-Stack sind ARIAs GPU-Dienste (STT: Voxtral/Whisper · TTS: F5-TTS ·
lokales LLM). Er läuft auf einer oder mehreren AI-Boxen — jede per .env
konfiguriert (COMPOSE_PROFILES, GPU-Zuordnung). Details zu Profilen/GPU-Wahl
stehen im Haupt-README (Abschnitt „Compute-Nodes").
bootstrap.sh macht aus einem frisch installierten Debian Trixie (headless,
nur SSH) einen startklaren GPU-Host für diesen Stack.
Was das Script tut
- Basis-Pakete (curl, gnupg, git …)
contrib non-free non-free-firmwareaktivieren (Trixie-deb822-Format berücksichtigt)- NVIDIA-Treiber installieren (
nvidia-driver+ firmware) - Docker Engine + Compose-Plugin
- NVIDIA Container Toolkit + Docker-Runtime auf NVIDIA konfigurieren
xtts/.envaus.env.exampleanlegen (RVS_TOKEN optional gleich setzen)- GPU-im-Container-Test (
docker run --gpus all … nvidia-smi) - optional (
--up): denxtts-Stack hochziehen
Alles idempotent — mehrfach ausführbar.
Ablauf
git clone <repo> ARIA-AGENT
cd ARIA-AGENT/xtts
sudo ./bootstrap.sh
# → Wenn der Treiber frisch installiert wurde: einmal neu starten, dann nochmal:
sudo reboot
# … nach dem Boot:
cd ARIA-AGENT/xtts
sudo ./bootstrap.sh --up --token <DEIN_RVS_TOKEN>
Der Treiber-Reboot ist normal (Kernel-Modul wird erst beim Boot geladen). Beim zweiten Lauf überspringt das Script alles Erledigte und macht nur noch den GPU-Test + Stack-Start.
Optionen
| Option | Wirkung |
|---|---|
--up |
am Ende docker compose up -d --build (Default-Profil) |
--token <TOK> |
RVS_TOKEN in xtts/.env eintragen (auch via RVS_TOKEN=… env) |
--rvs-host <H> |
RVS_HOST setzen |
Wichtig
- Stimm-Daten (nicht in git): falls von der alten Box noch vorhanden,
xtts/voice-id/(Speaker-Fingerprint) +xtts/voices/(F5-Referenz) herkopieren. Sonst egal — in der App neu anlegen: Stimme neu enrollen (ohne Fingerprint läuft die Speaker-ID fail-open, alles geht durch) + F5-Voice-Referenz neu hochladen. - Voxtral bleibt aus auf der 3060 (braucht ≥16 GB VRAM). Das Default-Profil
fährt Whisper (mit dem M0.1-Fix) + F5-TTS + lokales LLM. Voxtral erst mit der
24-GB-Karte:
docker compose stop whisper-bridge && docker compose --profile voxtral up -d --build. - Erster Start lädt Modelle (mehrere GB via HuggingFace nach
xtts/hf-cachextts/models) — genug Platz (1 TB NVMe ✓) und etwas Geduld.
- Box im selben Netz wie der RVS (z.B. Rechenzentrum, direkt auf die interne
IP statt NAT-Hairpin): in
xtts/.envRVS_HOST=<interne-ip>+RVS_SNI=<zert-name>(Name, für den das Caddy-Zert gilt). Ohne das scheitert TLS antlsv1 alert internal error. Zuhause / normal:RVS_SNIleer lassen.
Verifizieren
nvidia-smi # Host sieht die GPU
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi # Container auch
docker logs -f aria-whisper-bridge # "RVS verbunden" + service_status ready