docs: Bedienungsanleitung und Deployment-Guide aktualisieren
- BEDIENUNGSANLEITUNG.md: neue Piper-Stimmen (DE/EN/FR/ES Geschlechtspaare, PT/PL/AR), Geschlechtspräferenz (♂/♀-Buttons) dokumentiert, NL durch PT/PL/AR ersetzt, Stimmtabelle auf 18 Einträge erweitert - DEPLOYMENT.md: vollständiger jamulix-Deployment-Guide neu hinzugefügt (nginx, Authelia, Piper, Cartesia, Speaker-ID-Unterstützung, alle Änderungen gegenüber dem Upstream-Repo) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
91b9ef3374
commit
5351710099
2 changed files with 1516 additions and 21 deletions
|
|
@ -804,6 +804,7 @@ https://va.beispiel.de/ ← remote über Reverse-Proxy (alles, inkl. Mikr
|
|||
| Element | Funktion |
|
||||
|---------|----------|
|
||||
| **Vorlesen** | Wie wird die Antwort vorgelesen? `📱 Im Gerät` = das Handy liest selbst vor (kein Server-Audio → spart Daten; fällt auf Server zurück, wenn der Browser keine Stimmen hat) · `⚡ Schnell` = piper (lokal) · `✨ Hohe Qualität` = chatterbox (natürliche Stimme) · `☁ Cloud` = OpenRouter (Internet nötig). „Im Gerät" erscheint nur, wo der Browser es unterstützt. |
|
||||
| **♂ Männlich / ♀ Weiblich** | Geschlechtspräferenz der Stimme. Radiobuttons — immer genau einer aktiv. Standard: ♀. Wirkt bei Piper (wo ♂+♀-Varianten vorhanden: DE, EN, FR, ES, IT, RU, PL) und bei Cartesia (DE, EN, FR, ES, ZH, PT). Sprachen ohne Geschlechtspaar (AR, ZH, PT bei Piper) ignorieren die Einstellung. Präferenz wird dauerhaft gespeichert. |
|
||||
| **✎ Neues Gespräch** | Frische Sitzung (Verlauf zurücksetzen) |
|
||||
| **🌙 Tag-/Nachtmodus** | Heller/dunkler Modus; folgt sonst dem Betriebssystem |
|
||||
| **⚙ Admin-Bereich** | Öffnet das Admin-Panel — nur für Admin-Nutzer sichtbar (→ § 7.5) |
|
||||
|
|
@ -1136,20 +1137,31 @@ Stimmmodell-Dateien (`<name>.onnx` + `<name>.onnx.json`) liegen im `PIPER_VOICES
|
|||
`rhasspy/piper-voices` → die zwei Dateien in das Verzeichnis kopieren, dann
|
||||
`PIPER_VOICE` setzen und Server neu starten.
|
||||
|
||||
Aktuell installierte Stimmen (Stand 2026-06-19):
|
||||
Aktuell installierte Stimmen (Stand 2026-06-24):
|
||||
|
||||
| `PIPER_VOICE` | Sprache | Qualität | Phoneme | Hinweis |
|
||||
Die Geschlechtspräferenz (♂/♀-Buttons in der Sidebar) wählt automatisch aus den
|
||||
verfügbaren Varianten. Sprachen mit nur einer Stimme ignorieren die Einstellung.
|
||||
|
||||
| `PIPER_VOICE` | Sprache | Qualität | Geschlecht | Hinweis |
|
||||
|---|---|---|---|---|
|
||||
| `de_DE-thorsten-high` | Deutsch | **high** | 154 | **Default**, männlich |
|
||||
| `en_US-ryan-high` | Englisch (US) | **high** | 130 | männlich |
|
||||
| `en_US-lessac-high` | Englisch (US) | **high** | 154 | weiblich |
|
||||
| `en_GB-cori-high` | Englisch (GB) | **high** | 157 | weiblich, britischer Akzent |
|
||||
| `es_ES-sharvard-medium` | Spanisch | medium* | 154 | männlich |
|
||||
| `fr_FR-siwis-medium` | Französisch | medium* | 154 | weiblich, korrekte Nasalvokale |
|
||||
| `it_IT-paola-medium` | Italienisch | medium* | 154 | weiblich |
|
||||
| `nl_NL-mls-medium` | Niederländisch | medium* | 159 | mehrere Sprecher |
|
||||
| `ru_RU-irina-medium` | Russisch | medium* | 151 | weiblich |
|
||||
| `zh_CN-huayan-medium` | Chinesisch (Mandarin) | medium* | 152 | weiblich |
|
||||
| `de_DE-thorsten-high` | Deutsch | **high** | ♂ | **Default** |
|
||||
| `de_DE-kerstin-low` | Deutsch | low | ♀ | |
|
||||
| `en_US-lessac-high` | Englisch (US) | **high** | ♂ | |
|
||||
| `en_US-amy-medium` | Englisch (US) | medium* | ♀ | |
|
||||
| `en_US-ryan-high` | Englisch (US) | **high** | ♂ | alternativ |
|
||||
| `en_GB-cori-high` | Englisch (GB) | **high** | ♀ | britischer Akzent |
|
||||
| `fr_FR-siwis-medium` | Französisch | medium* | ♀ | korrekte Nasalvokale |
|
||||
| `fr_FR-tom-medium` | Französisch | medium* | ♂ | |
|
||||
| `es_ES-sharvard-medium` | Spanisch | medium* | ♂+♀ | Multi-Speaker-Modell: `#0`=♂, `#1`=♀ |
|
||||
| `it_IT-paola-medium` | Italienisch | medium* | ♀ | |
|
||||
| `it_IT-riccardo-x_low` | Italienisch | x_low | ♂ | |
|
||||
| `pt_BR-faber-medium` | Portugiesisch (BR) | medium* | ♂ | |
|
||||
| `pl_PL-gosia-medium` | Polnisch | medium* | ♀ | |
|
||||
| `pl_PL-darkman-medium` | Polnisch | medium* | ♂ | |
|
||||
| `ar_JO-kareem-medium` | Arabisch (JO) | medium* | ♂ | jordanischer Dialekt |
|
||||
| `ru_RU-irina-medium` | Russisch | medium* | ♀ | |
|
||||
| `ru_RU-ruslan-medium` | Russisch | medium* | ♂ | |
|
||||
| `zh_CN-huayan-medium` | Chinesisch (Mandarin) | medium* | ♀ | |
|
||||
|
||||
\* Für diese Sprachen existiert keine `high`-Variante in piper — `medium` ist das Maximum.
|
||||
|
||||
|
|
@ -1233,7 +1245,9 @@ config/
|
|||
pronunciation.fr.yaml # Französisch
|
||||
pronunciation.es.yaml # Spanisch
|
||||
pronunciation.it.yaml # Italienisch
|
||||
pronunciation.nl.yaml # Niederländisch
|
||||
pronunciation.pt.yaml # Portugiesisch
|
||||
pronunciation.pl.yaml # Polnisch
|
||||
pronunciation.ar.yaml # Arabisch
|
||||
pronunciation.ru.yaml # Russisch
|
||||
pronunciation.zh.yaml # Chinesisch
|
||||
```
|
||||
|
|
@ -1279,7 +1293,7 @@ Original: "Schlüter"
|
|||
DE: kein Eintrag nötig (nativ)
|
||||
FR: "Chluteur" → ch=/ʃ/ u=/y/ (= ü!) eur=/œʁ/ → /ʃlytœʁ/ ≈ /ʃlyːtɐ/
|
||||
EN: "Schlueter" → espeak-en liest "ue" als /uː/ → /ˈʃluːtər/ ✓
|
||||
NL: "Schluuter" → nl "uu"=/yː/ (= ü) sch=/sx/
|
||||
PT: "Schluter" → pt "u"=/u/ "e"=/ɨ/ → /ʃlu.tɨɾ/ (EP) oder /ʃlu.tɛɾ/ (BP)
|
||||
RU: "Шлютер" → Kyrillisch für exakte Phoneme (Latein wird schlecht gelesen)
|
||||
ZH: "施吕特" → 施=Shī=/ʃɨ/ 吕=lǚ=/ly/ (≈ lü!) 特=tè=/tɛ/
|
||||
```
|
||||
|
|
@ -1293,13 +1307,17 @@ ZH: "施吕特" → 施=Shī=/ʃɨ/ 吕=lǚ=/ly/ (≈ lü!) 特=tè
|
|||
|
||||
**Häufige Klangäquivalente je Sprache:**
|
||||
|
||||
| Laut | DE | EN | FR | NL | RU | ZH |
|
||||
| Laut | DE | EN | FR | ES/PT | RU | ZH |
|
||||
|------|----|----|----|----|----|----|
|
||||
| /ʃ/ | sch | sh | ch | sch (≈) | Ш | sh → 施/书 |
|
||||
| /y/ (= ü) | ü | — | u | uu | Ю/Ю | ü → 吕/绿 |
|
||||
| /x/ (= ch) | ch | kh | — | g/ch | Х | h → 哈 |
|
||||
| /ʃ/ | sch | sh | ch | sh | Ш | sh → 施/书 |
|
||||
| /y/ (= ü) | ü | — | u | — | Ю | ü → 吕/绿 |
|
||||
| /x/ (= ch) | ch | kh | — | j | Х | h → 哈 |
|
||||
| /ts/ | z | ts | ts | ts | Ц | ts → 茨 |
|
||||
|
||||
> **Arabisch (AR):** espeak-ng liest arabischen Text direkt in korrekter Aussprache —
|
||||
> Einträge in `pronunciation.ar.yaml` daher immer in **arabischer Schrift** (كذلك).
|
||||
> Lateinische Umschriften werden schlecht gelesen.
|
||||
|
||||
**Sonderfall Russisch und Chinesisch:** espeak-ng liest lateinische Buchstaben
|
||||
in russischem / chinesischem Modus schlecht. Immer Kyrillisch (RU) bzw. Hanzi (ZH) verwenden:
|
||||
|
||||
|
|
@ -1385,15 +1403,17 @@ gesteuert. Es kennt zwei Arten von Werten:
|
|||
| Auswahl | Bedeutung | Whisper (STT) | LLM-Antwort + Stimme |
|
||||
|---------|-----------|---------------|----------------------|
|
||||
| **🔄 Flex** | keine feste Sprache — folgt automatisch der gesprochenen | erkennt die Sprache, **übersetzt nicht** | in der **erkannten** Sprache (blaue Blase zeigt das Original) |
|
||||
| **🇩🇪 / 🇬🇧 / … (feste Sprache)** | „Fix": System bleibt bei dieser Sprache | bekommt die feste Sprache → **übersetzt** die Eingabe | immer in der **festen** Sprache, egal worin gefragt wurde |
|
||||
| **🇩🇪 🇬🇧 🇫🇷 🇪🇸 🇮🇹 🇧🇷 🇵🇱 🇸🇦 🇷🇺 🇨🇳** | „Fix": System bleibt bei dieser Sprache | bekommt die feste Sprache → **übersetzt** die Eingabe | immer in der **festen** Sprache, egal worin gefragt wurde |
|
||||
|
||||
**Beispiele** (Eingabe auf Französisch gesprochen):
|
||||
|
||||
- **Flex** → blaue Blase: französischer Originaltext · Antwort + Stimme: Französisch.
|
||||
- **🇩🇪 DE** → blaue Blase: deutsche Übersetzung · Antwort + Stimme: Deutsch.
|
||||
|
||||
Die vorlesende Piper-Stimme folgt immer der Antwortsprache automatisch (z. B. `thorsten`
|
||||
für Deutsch, `siwis` für Französisch — Zuordnung → `LANG_TO_PIPER_VOICE`). Bei Text-Chat
|
||||
Die vorlesende Piper-Stimme folgt immer der Antwortsprache automatisch (z. B. `thorsten`/`kerstin`
|
||||
für Deutsch, `siwis`/`tom` für Französisch — Zuordnung → `LANG_TO_PIPER_VOICE` und
|
||||
`PIPER_VOICE_GENDERED`). Die aktive Geschlechtspräferenz (♂/♀-Buttons) bestimmt, welche
|
||||
Variante gewählt wird. Bei Text-Chat
|
||||
im Flex-Modus (keine Audio-Erkennung möglich) bekommt das LLM **keine** Sprachvorgabe und
|
||||
antwortet von selbst in der Sprache der Eingabe; als Fallback gilt `DEFAULT_LANGUAGE`.
|
||||
|
||||
|
|
|
|||
1475
DEPLOYMENT.md
Normal file
1475
DEPLOYMENT.md
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue