From 5cdd13516909b392d611bb9ce14759cdb9184806 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sat, 11 Jul 2026 00:03:50 +0200 Subject: [PATCH] feat(voice): leeres = bewusst stumm (Steuerbefehl-Quittungen) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bisher: tts_text = tts_text_preview or text — ein leeres fiel auf den vollen Text zurueck und wurde doch gesprochen. Jetzt: ein vorhandener -Tag ist die EXPLIZITE TTS-Vorgabe (auch leer). Leeres = Bubble sichtbar, aber KEIN TTS. Nur ohne Tag Rueckfall auf vollen Text. Motivation: Spotify-Steuerbefehle (next/pause/…) laufen jetzt ueber den Fast-Path (<1s), aber die gesprochene Quittung klaute auf dem Handy den Audio-Fokus -> Spotify duckte/pausierte und spielte (bei kurzem Text) nicht weiter. Steuer-Skills koennen ihre Reply nun mit stummschalten. Generell nutzbar: ARIA kann jede Antwort bewusst stumm halten. Co-Authored-By: Claude Opus 4.8 --- bridge/aria_bridge.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/bridge/aria_bridge.py b/bridge/aria_bridge.py index e21fc1f..3b3f167 100644 --- a/bridge/aria_bridge.py +++ b/bridge/aria_bridge.py @@ -1326,9 +1326,18 @@ class ARIABridge: or 1.0 ) - tts_text = tts_text_preview or text + # Ein vorhandener -Tag ist die EXPLIZITE TTS-Vorgabe von ARIA — + # auch wenn er leer ist. Leeres = bewusst stumm: die + # Bubble erscheint im Chat, aber es wird NICHTS gesprochen. Use-Case: + # Steuerbefehl-Quittungen (Spotify next/pause, Licht an) — dort darf die + # Sprachausgabe NICHT feuern, weil das TTS-Playback auf dem Handy den + # Audio-Fokus klaut, Spotify duckt/pausiert und (bei kurzem Text) nicht + # sauber weiterspielt. Nur OHNE Voice-Tag faellt es auf den vollen Text + # zurueck (normale Antwort ohne TTS-Annotation wird komplett gelesen). + has_voice_tag = "" in (text or "").lower() + tts_text = tts_text_preview if has_voice_tag else (tts_text_preview or text) if not tts_text: - logger.info("[core] TTS-Text leer nach Cleanup — uebersprungen") + logger.info("[core] TTS-Text leer (bewusst stumm via oder nach Cleanup) — uebersprungen") return try: xtts_request_id = str(uuid.uuid4())