my_voice_assistant_v3_jamulix/app
dschlueter 6bf281fc30 fix(tts): voice_gender im UserPrefs-Schema -> Stimmwahl wirkt endlich
Eigentliche Ursache für 'immer weibliche Stimme, egal welcher Provider':
UserPrefs kannte kein Feld voice_gender, daher verwarf pydantic in
PUT /api/me/prefs die Geschlechtswahl still. resolve_route sah immer 'any'
-> Piper/Cartesia lieferten die weibliche Stimme (kerstin bzw. Alina).

- voice_gender zum Schema hinzugefügt; Frontend sendet es bereits, resolve_route
  liest es bereits (ROUTE_KEYS), voice_for_route mappt m/f bereits.
- Regressions-Test: voice_gender persistiert über /api/me/prefs.
- Docs/stimmen-inventar.md: zentrale Übersicht aller Stimmen je Provider/
  Sprache/Geschlecht (Name, Datei, UUID) inkl. Fundstellen im Code.

Live verifiziert (Profil jamulix, de): m -> de_DE-thorsten-high,
f -> de_DE-kerstin-low.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 03:13:27 +02:00
..
api feat(admin): Dropdown „Zentrales KI-Modell" — erprobte Presets ruck-zuck umstellen 2026-06-26 20:02:44 +02:00
audio feat: Barge-in/Turn-Manager und VAD-Aeusserungserkennung (#4 Ausbau) 2026-06-17 05:06:58 +02:00
core perf(stream): TTS-Synthese vom Token-Streaming entkoppeln (Bubble läuft voraus) 2026-06-26 11:33:04 +02:00
pipeline feat(tts): Emojis/Markdown beim Vorlesen entfernen + Autostart/GPU-Doku 2026-06-20 18:25:45 +02:00
providers feat(stt): bessere Spracherkennung — small-Modell, VAD, feste Sprache 2026-06-25 19:36:17 +02:00
safety feat(notruf): Alarmpause pro Nutzer im Notfall-Profil (Minuten, 0=aus, leer=global) 2026-06-26 17:10:12 +02:00
utils Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament 2026-06-17 01:48:56 +02:00
web fix(tts): Geräte-TTS folgt der Geschlechtswahl (m/f), sonst Server-Fallback 2026-06-27 02:43:29 +02:00
__init__.py Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament 2026-06-17 01:48:56 +02:00
admin_llm.py fix(admin): Phase 0 — Log & Restart reparieren, Status auf Wahrheit 2026-06-25 02:27:18 +02:00
audit.py feat(admin): Audit-Logging schreibender Admin-Aktionen — Plan-Schritt 5 2026-06-20 18:50:55 +02:00
auth.py feat(2-Schritt2): Login-Link + persistentes is_admin-Flag pro Nutzer 2026-06-25 04:33:33 +02:00
config.py feat(notruf): Wiederauslöse-Sperre + grüner Hinweis; "Neues Gespräch" in die Kopfzeile 2026-06-26 15:58:17 +02:00
dependencies.py feat(2a): Erlaubte Sprachen pro Nutzer (Admin-Vorgabe) 2026-06-25 04:06:09 +02:00
errors.py Initial commit: Voice Assistant Gateway mit Konfig-/Routing-Fundament 2026-06-17 01:48:56 +02:00
main.py feat(auth): Passwort-Login (1FA) für die App; Admin ebenfalls 1FA 2026-06-26 19:04:37 +02:00
metrics.py feat: Resilienz (Fallback-Ketten) und Metriken (#5) 2026-06-17 05:19:07 +02:00
model_presets.py feat(admin): Dropdown „Zentrales KI-Modell" — erprobte Presets ruck-zuck umstellen 2026-06-26 20:02:44 +02:00
quota.py feat(admin): Phase 3 — Laufzeit-Konfiguration ohne Server-Neustart 2026-06-19 01:39:36 +02:00
runtime_config.py feat(notruf): Wiederauslöse-Sperre + grüner Hinweis; "Neues Gespräch" in die Kopfzeile 2026-06-26 15:58:17 +02:00
schemas.py fix(tts): voice_gender im UserPrefs-Schema -> Stimmwahl wirkt endlich 2026-06-27 03:13:27 +02:00
store.py feat(notruf): Wiederauslöse-Sperre + grüner Hinweis; "Neues Gespräch" in die Kopfzeile 2026-06-26 15:58:17 +02:00