Aussprache-Wörterbuch: eigenes Modul, Wortgrenzen, gepflegte Liste, Kandidaten-Suche
Englische Fachbegriffe und fremde Eigennamen wurden auf Deutsch falsch vorgelesen
("Repository", "Donald Trump"). Chatterbox hat keinen Lautschrift-Eingang, also bleibt
nur die Umschrift in deutscher Rechtschreibung — die gab es zwar schon, aber nur als
kleines Dict im CLI-Skript, das keine andere Anwendung sinnvoll erweitern konnte.
Empirisch geprüft, warum es keinen besseren Weg gibt:
- Der multilinguale Tokenizer heißt "grapheme_mtl_merged_expanded_v1" und enthält zwar
IPA-Zeichen und ein [ipa]-Sprachtoken. generate() lehnt language_id="ipa" ab; umgeht
man nur die Whitelist, kommt Unsinn heraus: "ɹɪˈpɑzɪˌtɔɹi" klingt wie "Ripacitari",
"dɪˈplɔɪmənt" wie "Deep Romant" (per Whisper zurücktranskribiert). IPA ist tot.
- Der vorhandene Sprachwechsel im Satz ([en]...[/en]) synthetisiert die Teile korrekt,
klebt sie aber ohne Überblendung zusammen: gemessen 4 Nahtpausen von 0,5-0,8 s, der
Satz wächst von 3,9 s auf 7,1 s. Für Fließtext unbrauchbar.
Neu:
- pronunciation.py — eigenständiges Modul, reine Standardbibliothek (kein torch), damit
CLI, HTTP-Service, MCP-Adapter und fremde Projekte (Open Notebook) dasselbe Wörterbuch
nutzen können, ohne das Modell zu laden. Namen werden aus chatterbox_cli_v4
re-exportiert, bestehende Importe bleiben gültig.
- Ladereihenfolge mit Vorrang: eingebaut -> pronunciation/<lang>.json (mitgeliefert) ->
~/.config/chatterbox/pronunciation/<lang>.json -> $CHATTERBOX_PRONUNCIATION_DICT ->
explizit übergebenes Dict. Kaputte JSON-Dateien werden gemeldet, nicht fatal.
- pronunciation/de.json — kuratierte Einträge (Tech, KI, Firmen, Personen, Medien).
- pronunciation_candidates.py — findet in einem Text alles, was hunspell (de) nicht kennt
und noch nicht im Wörterbuch steht. An einem echten Podcast-Transkript getestet: 61
Kandidaten, darunter Voicebox, Scrapling, Scraping.
Fehlerbehebung: Ersetzt wird jetzt an Wortgrenzen und in einem einzigen Durchgang. Das
alte str.replace() machte aus "UNESCO" ein "Uh EnnESCO" und aus "UNIX" ein "Uh EnnIX",
weil der Eintrag "UN" auch mitten im Wort traf.
Verifiziert: 199 Einträge laden in 44 ms ohne torch; UNESCO/UNIX/Xiaomi bleiben intakt;
Open Notebooks TTS-Server spricht die Umschrift ohne eine einzige Codeänderung dort; der
MCP-Service auf :9999 läuft unverändert weiter.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
1ce6540711
commit
cd9383ff88
6 changed files with 570 additions and 50 deletions
|
|
@ -201,8 +201,45 @@ python chatterbox_cli_v4.py --lang de \
|
|||
--input nachricht.txt
|
||||
```
|
||||
|
||||
Häufige englische Begriffe wie „GitHub" (→ „Git Hab"), „YouTube" (→ „Jutjub") oder
|
||||
„Wi-Fi" (→ „Wai Fai") werden bereits automatisch korrekt ausgesprochen.
|
||||
### Das mitgelieferte Wörterbuch
|
||||
|
||||
Rund 200 Begriffe sind **schon eingebaut** und werden automatisch korrigiert — englische
|
||||
Fachbegriffe („Repository" → „Ripositori", „Deployment" → „Diploiment"), Eigennamen
|
||||
(„Donald Trump" → „Donald Tramp"), Firmen („Nvidia" → „Enwidia") und Abkürzungen
|
||||
(„GPU" → „Geh Peh Uh"). Nachsehen, was drinsteht:
|
||||
|
||||
```bash
|
||||
python pronunciation.py de
|
||||
```
|
||||
|
||||
Gepflegt wird die Liste in `pronunciation/de.json`. Eigene Begriffe kannst du auf drei
|
||||
Wegen ergänzen — jede Stufe überschreibt die vorherige:
|
||||
|
||||
| Wo | Wofür |
|
||||
|---|---|
|
||||
| `pronunciation/de.json` | die gemeinsame Liste, gilt für **alle** Programme (CLI, Service, MCP) |
|
||||
| `~/.config/chatterbox/pronunciation/de.json` | deine persönlichen Ergänzungen |
|
||||
| `CHATTERBOX_PRONUNCIATION_DICT=/pfad/zu.json` | einmalig, z. B. für ein einzelnes Projekt |
|
||||
| `--pronunciation-dict datei.json` | nur für diesen einen Aufruf |
|
||||
|
||||
### Neue Begriffe finden statt raten
|
||||
|
||||
Welche Wörter falsch klingen, muss man nicht erraten. Das Hilfsprogramm sucht in einem Text
|
||||
alles, was ein deutsches Wörterbuch nicht kennt — das sind fast immer genau die englischen
|
||||
Fachbegriffe und fremden Namen:
|
||||
|
||||
```bash
|
||||
python pronunciation_candidates.py mein_text.txt # Liste, häufigste zuerst
|
||||
python pronunciation_candidates.py mein_text.txt --json # Gerüst zum Ausfüllen
|
||||
```
|
||||
|
||||
Die Umschrift schreibst du selbst — sie soll so aussehen, wie ein deutscher Sprecher das
|
||||
Wort vorlesen würde. **Nicht komplett großschreiben** („EIGEN" würde als „E I Ge E En"
|
||||
buchstabiert).
|
||||
|
||||
> **Warum Umschrift und nicht Lautschrift (IPA)?** Chatterbox liest Buchstaben, keine
|
||||
> Laute. Ein IPA-Eingang existiert nicht — getestet: aus `ɹɪˈpɑzɪˌtɔɹi` wird hörbar
|
||||
> „Ripacitari". Deshalb schreibt man die Aussprache mit deutschen Buchstaben auf.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue