fix(terminal): Barge-in funktioniert jetzt in beiden Phasen
Barge-in im Sprech-Loop (voice_loop.py) war nur während der LLM-Phase zuverlässig. Während der Audio-Wiedergabe (nach done-Event) war der _stdin_watcher bereits gecancelt, sodass Enter ignoriert wurde oder als Spurious-Input in record_utterance() landete. Lösung: - _stdin_watcher läuft jetzt durch beide Phasen (LLM + Audio) - Phase 2: _close_player wird als asyncio-Task gegen den Watcher geract; Enter während der Wiedergabe killt den Player sofort - termios.tcflush nach jedem Turn verhindert Rest-Enters im stdin-Buffer Außerdem: OPENROUTER_API_KEY in .env ergänzt (systemd sourct kein .bashrc); Dokumentation entsprechend aktualisiert. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
613b18055b
commit
8e48ab6d66
2 changed files with 76 additions and 25 deletions
|
|
@ -531,7 +531,7 @@ python scripts/voice_loop.py --session mein-gespraech
|
|||
**Ablauf je Runde:**
|
||||
1. **[Enter]** → sprechen
|
||||
2. **[Enter]** → Aufnahme stoppt, Assistent antwortet hörbar
|
||||
3. **[Enter]** während der Wiedergabe → **Barge-in:** Antwort sofort unterbrechen
|
||||
3. **[Enter]** während der KI antwortet (Text streamt *oder* Audio spielt) → **Barge-in:** Antwort sofort unterbrechen
|
||||
4. **[Enter]** → nächste Runde beginnen
|
||||
5. **Strg + C** → beenden
|
||||
|
||||
|
|
@ -916,7 +916,7 @@ python scripts/voice_loop.py --no-stream-audio
|
|||
**Barge-in** (laufende Antwort unterbrechen):
|
||||
|
||||
- **Web-Interface:** Mic-Button ⏹ (amber) während der KI-Antwort tippen → Wiedergabe stoppt sofort, Server bricht Generierung ab.
|
||||
- **Terminal:** `[Enter]` während der Wiedergabe drücken → dasselbe Ergebnis.
|
||||
- **Terminal:** `[Enter]` drücken, sobald die KI antwortet — egal ob Text noch streamt oder Audio bereits läuft → dasselbe Ergebnis.
|
||||
- **API/eigene Clients:** WebSocket-Event `{"type":"interrupt"}` senden → Server stoppt Streaming und meldet `{"type":"interrupted"}`.
|
||||
|
||||
**VAD** (automatische Sprechpausen-Erkennung): Im Start-Frame von `/ws/voice`
|
||||
|
|
@ -1457,7 +1457,7 @@ Meldet pro Modul `[OK]` / `[FAIL]`, inkl. TTS→STT-Round-Trip.
|
|||
|
||||
| Symptom | Ursache | Lösung |
|
||||
|---------|---------|--------|
|
||||
| `OPENROUTER_API_KEY is empty` | Key nicht in der Umgebung | `export OPENROUTER_API_KEY=…` in neuem Terminal oder `source ~/.bashrc` |
|
||||
| `OPENROUTER_API_KEY is empty` | Key fehlt im Service-Environment | `OPENROUTER_API_KEY=sk-or-…` in `.env` eintragen — systemd sourct kein `.bashrc` |
|
||||
| HTTP **401** „Bearer/Invalid token" | Auth an, Token fehlt/falsch | Token im Header; oder `AUTH_ENABLED=false` für Dev |
|
||||
| HTTP **401** bei `/api/admin/users` | falscher/fehlender Admin-Key | `X-Admin-Key` = `ADMIN_API_KEY` |
|
||||
| HTTP **403** bei `?session_id=…` | Session gehört anderem Nutzer | eigene `session_id` wählen |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue