Speech gate (silence detection): - vadHadSpeech flag: VAD auto-stop cancels without calling STT when no speech was detected (fixes "[STT] No speech detected → gibberish" loop) - cancelNextBlob flag: onstop skips processBlob when VAD cancels silently - vadLastVoiceMs: gates preview transcription on actual detected speech (prevents "reich" hallucination on initial silence chunks) Hallucination filter: - Client: HALLUCINATION_RE strips known Whisper phantoms from preview - Server: _is_hallucination() in generate() treats "reich" / "danke" / "thank you" etc. as "No speech detected" → never reaches LLM Latency: - VAD_SILENCE_MS: 1500 → 1000 ms (sends 500 ms sooner per turn) - VAD_MIN_REC_MS: 500 → 400 ms - MediaRecorder timeslice: 2500 → 1500 ms (preview text updates faster) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| admin.py | ||
| conversation.py | ||
| docker.py | ||
| library.py | ||
| settings.py | ||
| sources.py | ||
| stt.py | ||
| tts.py | ||