Bugfixes, Verbesserungen und Mixed-Language-Support

Bugfixes:
- Abkürzungen (z.B., d.h., Dr., Prof.) werden nicht mehr als Satzenden erkannt (_ABBREV_MASK_RE)
- Multilingual-Import: except Exception → except (ImportError, ModuleNotFoundError)
- tts_agent: ReAct-Schleife auf max. 10 Iterationen begrenzt, model_dump → explizites Dict
- tts_service: audio_device=None fällt auf 'pulse' zurück
- JSON-Fehlerbehandlung für --pronunciation-dict mit aussagekräftiger Meldung
- PlaybackWorker: Audio-Device wird vor Stream-Start via sd.query_devices() geprüft
- mcp_adapter: Fehlerbehandlung für HTTP-Fehler, Timeout erhöht, session_id ergänzt
- tts_agent: Health-Check beim Start, --speed/--first-chunk-len Validierung

Neue Features:
- Gemischtsprachige Texte: [en]...[/en]-Markierungen für per-Segment language_id
- strip_markdown(): entfernt Markdown-Formatierung vor der Synthese (--no-strip-markdown)
- Emoji-Entfernung in clean_raw_text() via unicodedata
- Pause/Resume: request_pause()/request_resume(), POST /pause, POST /resume, MCP-Tools
- Neue Einheiten: °C, °F, kWh, kW, W, V, A, J, kPa, bar, m², m³, m/s, rpm
- number_to_words_de/en bis Milliarden
- DEFAULT_PRONUNCIATION_DE erweitert (GitHub, YouTube, LinkedIn, Wi-Fi, iPhone, ChatGPT, …)
- NON_SPELLED_ACRONYMS erweitert (USB, CPU, GPU, API, CEO, HTML, …)
- Nummerierte Listen als separate Chunks behandelt
- Modell-Warmup via TTS_PRELOAD_LANG Env-Variable
- requirements.txt: Upper-Bounds für fastapi und uvicorn

Dokumentation: CLAUDE.md, README.md, BEDIENUNGSANLEITUNG.md vollständig aktualisiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-06-03 11:36:54 +02:00
commit 34a34907a8
8 changed files with 778 additions and 114 deletions

View file

@ -152,9 +152,9 @@ Du kannst das mit einer einfachen Textdatei im JSON-Format korrigieren.
```json
{
"Xi Jinping": "Schi Dschinping",
"Seoul": "Söul",
"Macron": "Makron"
"Macron": "Makron",
"Kubernetes": "Kubernetis"
}
```
@ -166,6 +166,9 @@ 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.
---
## Den Service aus dem Netzwerk nutzen
@ -188,6 +191,12 @@ curl -X POST http://COMPUTER-IP:9999/speak \
hostname -I
```
**Ausgabe pausieren und fortsetzen:**
```bash
curl -X POST http://COMPUTER-IP:9999/pause
curl -X POST http://COMPUTER-IP:9999/resume
```
**Ausgabe stoppen:**
```bash
curl -X POST http://COMPUTER-IP:9999/stop
@ -203,10 +212,12 @@ kann er den TTS-Service direkt ansprechen:
### Claude (Claude Code / Claude Desktop)
Claude ist bereits mit dem TTS-Service verbunden. Du kannst Claude einfach bitten,
etwas vorzulesen — er ruft den Service automatisch auf.
etwas vorzulesen, zu pausieren oder zu stoppen — er ruft den Service automatisch auf.
Beispiel-Anfrage an Claude:
Beispiel-Anfragen an Claude:
> „Lies mir bitte diesen Text vor: ..."
> „Pause bitte."
> „Weiter."
### Home Assistant
@ -219,6 +230,14 @@ rest_command:
method: POST
content_type: "application/json"
payload: '{"text": "{{ text }}", "lang": "de"}'
tts_pause:
url: "http://COMPUTER-IP:9999/pause"
method: POST
tts_weiter:
url: "http://COMPUTER-IP:9999/resume"
method: POST
```
Danach in einer Automation verwendbar:
@ -249,11 +268,15 @@ Service verbunden werden — Details in der `README.md`.
## Was das Programm automatisch macht
- Abkürzungen buchstabieren: ARD wird zu „Ah Er De", YMCA zu „Ypsilon Em Tse Ah"
- Zusammengesetzte Wörter mit Abkürzung: „US-Präsident" wird zu „U Es Präsident"
- Uhrzeiten vorlesen: „14:58" wird zu „vierzehn Uhr achtundfünfzig"
- Jahreszahlen aussprechen: „2026" wird zu „zweitausendsechsundzwanzig"
- Trennzeilen wie „--- Ende ---" werden stillschweigend übersprungen
- **Markdown-Formatierung bereinigen**: `**fett**`, `# Überschrift`, `- Listen` und Links werden vor der Sprachausgabe entfernt
- **Emojis entfernen**: Smileys und Symbole (😊, 🎉) werden still übergangen
- **Abkürzungen buchstabieren**: ARD wird zu „Ah Er De", YMCA zu „Ypsilon Em Tse Ah"
- **Tech-Abkürzungen richtig sprechen**: CPU, GPU, USB, API, JSON u. a. werden lateinisch buchstabiert (nicht auf Deutsch)
- **Zusammengesetzte Wörter mit Abkürzung**: „US-Präsident" wird zu „U Es Präsident"
- **Uhrzeiten vorlesen**: „14:58" wird zu „vierzehn Uhr achtundfünfzig"
- **Jahreszahlen aussprechen**: „2026" wird zu „zweitausendsechsundzwanzig"
- **Einheiten übersetzen**: „25 °C", „100 kWh", „10 m²", „100 W" werden ausgeschrieben
- **Trennzeilen überspringen**: Linien wie „--- Ende ---" werden stillschweigend übersprungen
---
@ -286,8 +309,7 @@ kann 3060 Sekunden brauchen. Mit GPU (CUDA) dauert es ca. 510 Sekunden.
- **Betonung einzelner Wörter** lässt sich nicht direkt steuern.
Eine Aufnahme der eigenen Stimme mit natürlicher Betonung kann helfen.
- **Manche Fremdwörter** (z. B. chinesische oder arabische Namen) klingen
nicht immer perfekt — mit der Aussprache-Datei lässt sich das korrigieren.
- **Manche Fremdwörter** klingen nicht immer perfekt — mit der Aussprache-Datei lässt sich das korrigieren.
- Das Programm liest alles vor, was in der Datei steht — also auch
Überschriften und Metadaten wie „Schlagzeile:" oder „Stand:".
- Eine laufende Ausgabe kann erst am Ende des aktuellen Satzes unterbrochen