From c042f271068f8265b0e8ed4b25a2dac4d79764b7 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Wed, 22 Apr 2026 19:17:04 +0200 Subject: [PATCH] feat: generisches Buchstabieren fuer unbekannte Akronyme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nach der expliziten _UNIT_WORDS-Liste greift eine Fallback-Regel: alle verbleibenden 2-5-Zeichen-Grossbuchstaben-Woerter werden buchstabiert. XTTS → X T T S, USB → U S B, DNS → D N S, JSON → J S O N. Spezielle Faelle (WLAN, NATO — als Wort gesprochen) koennen bei Bedarf in _UNIT_WORDS explizit ueberschrieben werden. Co-Authored-By: Claude Opus 4.7 (1M context) --- bridge/aria_bridge.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bridge/aria_bridge.py b/bridge/aria_bridge.py index b83ebb4..a064e79 100644 --- a/bridge/aria_bridge.py +++ b/bridge/aria_bridge.py @@ -257,6 +257,12 @@ def clean_text_for_tts(text: str) -> str: for pat, repl in _UNIT_WORDS: t = _re_tts.sub(pat, repl, t) + # Generisches Buchstabieren: alle verbleibenden 2-5-Zeichen-Grossbuchstaben-Woerter + # (XTTS, USB, DNS, JSON, HTML, ...) → "X T T S". Laeuft NACH der expliziten Liste, + # damit TTS/GPU/... schon aufgeloest sind. "WLAN"-artige, die als Wort gesprochen + # werden, koennen bei Bedarf explizit in _UNIT_WORDS uebersteuert werden. + t = _re_tts.sub(r'\b([A-Z]{2,5})\b', lambda m: " ".join(m.group(1)), t) + # Anfuehrungszeichen t = _re_tts.sub(r'["""„`]', '', t)