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:
+4
-1
@@ -677,8 +677,10 @@ class ChatOut(BaseModel):
|
||||
# naechste Eingabe als Antwort weiter, statt sie als neuen Auftrag anzustellen.
|
||||
awaiting_reply: bool = False
|
||||
# Der User hat per Sprache "Wake-Word aus" gesagt → die App stoppt den
|
||||
# Wake-Word-Listener komplett (Mikro frei). Wieder-An nur ueber App-Button.
|
||||
# Wake-Word-Listener komplett (Mikro frei).
|
||||
wake_off: bool = False
|
||||
# "Wake-Word an" per Befehl (Text/Aufnahme-Button) → App startet den Listener.
|
||||
wake_on: bool = False
|
||||
# Echo der project_id die dieser Turn hatte. Bridge nutzt sie damit die
|
||||
# ausgehende Chat-Bubble sauber getaggt in der richtigen Thread-Bahn der
|
||||
# UI landet.
|
||||
@@ -789,6 +791,7 @@ async def chat(body: ChatIn, background: BackgroundTasks):
|
||||
converse=converse,
|
||||
awaiting_reply=awaiting_reply,
|
||||
wake_off=(answered_by == "wake-off"),
|
||||
wake_on=(answered_by == "wake-on"),
|
||||
)
|
||||
finally:
|
||||
_project_pending[pid] = [
|
||||
|
||||
Reference in New Issue
Block a user