diff --git a/android/src/services/wakeword.ts b/android/src/services/wakeword.ts index 6a83f48..2b0771d 100644 --- a/android/src/services/wakeword.ts +++ b/android/src/services/wakeword.ts @@ -30,12 +30,14 @@ type PassiveListenCallback = () => void; export type WakeWordState = 'off' | 'armed' | 'conversing' | 'listening'; -/** Backstop-Dauer fuer den Passive-Listen-Modus nach einer Antwort. Das echte - * Ende regelt die Stille-Toleranz (die passive Aufnahme endet nach dem einen - * No-Speech-Fenster → ChatScreen ruft exitPassiveListening). Dieser Timer ist - * nur die Notbremse, falls die Aufnahme mal nicht sauber endpointet — daher - * fix und kurz, kein separater Nutzer-Wert mehr (das alte 30s-Fenster ist raus). */ -const PASSIVE_BACKSTOP_MS = 15_000; +/** Reine HANG-Notbremse fuer den Passive-Listen-Modus. Das echte Ende regelt IMMER + * die passive Aufnahme selbst: Stille-Toleranz (User pausiert), No-Speech (User + * sagt gar nichts) oder Hard-Cap (max. Aufnahmedauer, ~5min) → ChatScreen ruft + * dann exitPassiveListening. Dieser Timer darf aktives Reden NIE abschneiden — + * deshalb LÄNGER als der Hard-Cap (nur falls ein Endpoint-Event mal verloren geht + * und der State sonst ewig 'listening' bliebe). Das alte 30s-Fenster, das lange + * Antworten mitten im Satz kappte, ist damit raus. */ +const PASSIVE_BACKSTOP_MS = 10 * 60_000; export const WAKE_KEYWORD_STORAGE = 'aria_wake_keyword';