feat(voice): Wake-Word per Befehl wieder anschalten (Gegenstück zu wake_off)

"Wake-Word an" / "mach das Ohr an" / "hör wieder zu" / "wach auf" → App startet
den Listener wieder. Geht per Text-Nachricht ODER manuellem Aufnahme-Button —
beide laufen unabhängig vom Wake-Word-Listener, also funktioniert das Wieder-An
auch wenn das Ohr gerade taub ist (nur nicht per "Computer", das hört ja nicht).

Symmetrisch zu wake_off: Detektor _user_wants_wake_on → wake_on durch ChatOut →
Bridge → App löst wakeWordService.start() + setWakeWordActive(true) aus. An/Aus
kollidieren nicht (12 Fälle getestet). Damit: Ohr per Befehl ein UND aus, plus
weiterhin der Ohr-Button.

Fix nebenbei: gerades " in den Reply-Strings (hätte den Brain-Start gecrasht) →
einfache Anführungszeichen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-16 20:33:16 +02:00
co-authored by Claude Opus 4.8
parent 93401d42d1
commit 41714f7cf1
4 changed files with 59 additions and 5 deletions
+15 -1
View File
@@ -1407,8 +1407,22 @@ const ChatScreen: React.FC = () => {
// sofort (zurueck aufs Wake-Word), nur echte Gespraeche lauschen weiter.
converseRef.current = (message.payload as any).converse === true;
const _wakeOff = (message.payload as any).wake_off === true;
const _wakeOn = (message.payload as any).wake_on === true;
const _isSilent = (message.payload as any).speak === false;
if (_wakeOff) {
if (_wakeOn) {
// "Wake-Word an" per Text/Aufnahme-Button → Listener wieder starten
// (gleicher Weg wie toggleWakeWord-on). Geht auch wenn das Ohr taub war,
// weil der Befehl NICHT ueber "Computer" kam.
(async () => {
try {
const started = await wakeWordService.start();
setWakeWordActive(started);
console.log('[Chat] Wake-Word per Befehl AN gestartet:', started);
} catch (e) {
console.warn('[Chat] Wake-Word AN fehlgeschlagen:', e);
}
})();
} else if (_wakeOff) {
// ARIA hat "Wake-Word aus" per Sprache bekommen → Listener KOMPLETT
// stoppen (Mikro frei, echte Ruhe). Gleicher Weg wie der Ohr-Button
// (toggleWakeWord-off). Wieder-An nur ueber den Button (dann taub).