refactor(ui): Geräte-STT entfernt + Menü-Redesign (schlanke Kopfzeile + ⋮-Sheet)
Geräte-STT (Web Speech API) entfernt — auf Android nur Cloud, Qualität < Whisper, verwirrend. STT läuft jetzt überall serverseitig (Whisper). Geräte-TTS bleibt. - Backend: allow_cloud_stt (config/runtime_config/api me) + Tests entfernt. - Frontend: SpeechRecognition-Code, STT-Dropdown, "Lokal"-Button raus. Menü-Redesign (verständlicher + passt auf Handys): - Kopfzeile schlank: Mund-Icon + Titel + Sprache + ⋮-Menübutton (kein Überlauf mehr). - ⋮ öffnet ein Einstellungs-Sheet: Ton als 3 Presets (📱 Im Gerät / ☁ Server / ✨ Beste Qualität) statt zweier kryptischer "Gerät"-Dropdowns; Neues Gespräch; Tag-/Nachtmodus; Konto (Identität, Admin, Abmelden). - #tts bleibt als verborgenes Quell-Select -> bestehende TTS-Logik unverändert. - Doku §5.1.2 neu, §6.3 STT-Hinweis. 167 grün. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
f74d2fadb2
commit
3f6bf53a7f
7 changed files with 161 additions and 254 deletions
|
|
@ -774,29 +774,43 @@ https://va.beispiel.de/ ← remote über Reverse-Proxy (alles, inkl. Mikr
|
|||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ Voice Assistant [🇩🇪 ▾] [Qualität ▾] [⚙️] [🌙] │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ Nachrichtenverlauf │
|
||||
│ (eigene Nachrichten: blaue Blase rechts) │
|
||||
│ (Assistent: graue Blase links) │
|
||||
│ │
|
||||
├─────────────────────────────┬───────────────────────────┤
|
||||
│ Texteingabe … [Senden] │ [🎤] │
|
||||
└─────────────────────────────┴───────────────────────────┘
|
||||
Statuszeile: „denkt …" / „verarbeite Sprache …" / leer
|
||||
│ 👄 Voice Assistant ............... [🇩🇪 ▾] [ ⋮ ] │
|
||||
├─────────────────────────────────────────────────────────┤ ┌─ Menü (⋮) ──────────────┐
|
||||
│ │ │ VORLESEN │
|
||||
│ Nachrichtenverlauf │ │ ▣ 📱 Im Gerät │
|
||||
│ (eigene Nachrichten: blaue Blase rechts) │ │ ▢ ☁ Server │
|
||||
│ (Assistent: graue Blase links) │ │ ▢ ✨ Beste Qualität │
|
||||
│ │ │ ────────────────────── │
|
||||
├─────────────────────────────┬───────────────────────────┤ │ ✎ Neues Gespräch │
|
||||
│ Texteingabe … [Senden] │ [🎤] │ │ 🌙 Tag-/Nachtmodus │
|
||||
└─────────────────────────────┴───────────────────────────┘ │ ────────────────────── │
|
||||
Statuszeile: „denkt …" / „verarbeite Sprache …" / leer │ Angemeldet · Admin · Ab │
|
||||
└──────────────────────────┘
|
||||
```
|
||||
|
||||
**Kopfzeile (immer schlank):**
|
||||
|
||||
| Element | Funktion |
|
||||
|---------|----------|
|
||||
| **👄 / Titel** | Marke; Mund-Symbol als Wiedererkennung |
|
||||
| **Sprache ▾** | Antwortsprache (→ § 6.6): `🔄 Flex` = folgt der gesprochenen Sprache · feste Sprache (🇩🇪/🇬🇧/…) = Antwort + Stimme in dieser Sprache |
|
||||
| **⋮ Menü** | Öffnet die Einstellungen (unten) |
|
||||
|
||||
**Im ⋮-Menü:**
|
||||
|
||||
| Element | Funktion |
|
||||
|---------|----------|
|
||||
| **Vorlesen** | Wie wird die Antwort vorgelesen? `📱 Im Gerät` = das Handy liest selbst vor (kein Server-Audio → spart Daten) · `☁ Server` = piper (lokal, zuverlässig) · `✨ Beste Qualität` = chatterbox (natürliche Stimme). „Im Gerät" erscheint nur, wo der Browser es unterstützt. |
|
||||
| **✎ Neues Gespräch** | Frische Sitzung (Verlauf zurücksetzen) |
|
||||
| **🌙 Tag-/Nachtmodus** | Heller/dunkler Modus; folgt sonst dem Betriebssystem |
|
||||
| **Konto** | „Angemeldet als …", **⚙ Admin** (nur Admins → § 7.5), **Abmelden** |
|
||||
|
||||
**Unten:**
|
||||
|
||||
| Element | Funktion |
|
||||
|---------|----------|
|
||||
| **🎤 Mikrofon** | **grün:** tippen → Aufnahme · **rot:** tippen → stoppt & sendet · **amber ⏹:** tippen → KI unterbrechen (Barge-in). STT läuft serverseitig (Whisper). |
|
||||
| **Texteingabe + Senden** | Text tippen, dann Enter oder „Senden" |
|
||||
| **🎤 Mikrofon-Button** | **Idle (grün 🎤):** Tippen → Aufnahme startet · **Aufnahme (rot pulsierend 🎤):** Tippen → Aufnahme stoppt und wird gesendet · **KI antwortet (amber ⏹):** Tippen → Antwort sofort unterbrechen (Barge-in) |
|
||||
| **Sprache ▾** | Antwortsprache wählen (→ § 6.6): `🔄 Flex` = folgt automatisch der gesprochenen Sprache · feste Sprache (🇩🇪/🇬🇧/…) = Eingabe wird in diese Sprache übersetzt. Die vorlesende Stimme folgt der Auswahl. |
|
||||
| **Qualität ▾** (Ausgabe/TTS) | Vorlese-Quelle: `📱 Gerät` = das Handy/der Browser liest selbst vor (Web Speech API, kein Server-Audio → spart Daten/Kosten) · `Schnell` = piper (lokal) · `Hoch` = chatterbox (neuronal) · `Cloud` = openrouter |
|
||||
| **STT ▾** (Eingabe) | *Nur sichtbar auf Geräten mit lokaler Spracherkennung* (iOS/Android): `🎙 Gerät` = Spracherkennung im Gerät (nur Text wird gesendet) · `☁ Server` = Audio-Upload + Whisper (wie am PC/Laptop). Getrennt von der Ausgabe wählbar (→ § 6.3.1). |
|
||||
| **☀️ / 🌙** | Tag-/Nacht-Modus; folgt sonst automatisch dem Betriebssystem |
|
||||
| **⚙️** (Admin) | Öffnet das Admin-Panel — nur für Admin-Nutzer sichtbar (→ § 7.5) |
|
||||
| **Angemeldet als …** | SSO-Identität; „Gast" wenn AUTH deaktiviert oder kein SSO-Cookie |
|
||||
|
||||
#### 5.1.3 Typischer Ablauf — Textchat
|
||||
|
||||
|
|
@ -1013,34 +1027,10 @@ FASTER_WHISPER_DEVICE=cuda
|
|||
FASTER_WHISPER_COMPUTE_TYPE=float16
|
||||
```
|
||||
|
||||
#### 6.3.1 Geräte-STT (Web Speech API) — „🎙 Gerät"
|
||||
|
||||
Auf **Mobilgeräten** (iOS/Android) kann die Spracherkennung **im Gerät** laufen: Das
|
||||
Handy wandelt Sprache in Text um und sendet nur den **Text** an den Server — kein
|
||||
Audio-Upload, keine Server-STT-Last. Gegenstück zum Geräte-TTS (§ 6.5.0), aber
|
||||
**getrennt** wählbar (STT-Dropdown in der Kopfzeile).
|
||||
|
||||
- **Erscheint nur**, wenn das Gerät lokale Spracherkennung bietet. **Terminal, Desktop-
|
||||
Browser und Laptop** zeigen die Option nicht — dort läuft STT wie bisher über den
|
||||
Server (Whisper).
|
||||
- **Datenschutz (Linie C):** Standardmäßig nur bei **nachweislich lokaler** Erkennung
|
||||
(iOS-Safari; Chrome mit On-Device-Modus). **Chrome am Desktop** würde das Audio zur
|
||||
Erkennung an Google schicken — das ist nur erlaubt, wenn ein Admin
|
||||
`ALLOW_CLOUD_STT=true` setzt (Admin → Einstellungen → „Geräte-STT (mobil)").
|
||||
- **Nur Fix-Sprache:** Geräte-STT braucht einen Sprach-Hint → es nutzt die im
|
||||
Sprach-Dropdown gewählte feste Sprache. Im **Flex-Modus** fällt es automatisch auf
|
||||
Server-STT (Whisper-Auto-Erkennung) zurück.
|
||||
- **On-Device-Sprachpakete (Chrome):** Vor der lokalen Erkennung wird per
|
||||
`SpeechRecognition.available()` geprüft, ob das Sprachpaket vorhanden ist. Fehlt es,
|
||||
wird es im Hintergrund heruntergeladen (`install()`) und für **diesen** Turn auf
|
||||
Cloud (falls erlaubt) bzw. Server zurückgefallen — so erscheint kein
|
||||
„language not supported" mehr.
|
||||
- **Fallback:** Ohne Unterstützung (z. B. Firefox), bei fehlendem Sprachpaket oder
|
||||
Erkennungsfehlern (`language-not-supported`, `network` …) wird automatisch der
|
||||
Server-STT-Pfad genutzt. Während der Erkennung erscheint der Text **live** im
|
||||
Eingabefeld; erneutes Tippen aufs Mikrofon beendet und sendet.
|
||||
- **Schnellwahl „📴 Lokal":** Setzt mit einem Tipp **STT + TTS** auf „Gerät" — dann
|
||||
sendet/empfängt das Handy nur noch Text (maximale Daten-/Kostenersparnis).
|
||||
> **Hinweis:** Die Spracherkennung läuft auf **allen** Geräten serverseitig (Whisper) —
|
||||
> einheitlich und zuverlässig. (Ein früher erprobtes Geräte-STT über die Web Speech API
|
||||
> wurde wieder entfernt: Auf Android-Chrome lief es nur über die Google-Cloud, und die
|
||||
> Erkennungsqualität war Whisper unterlegen. Das **Vorlesen** im Gerät (§ 6.5.0) bleibt.)
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue