Add HTTP service, MCP adapter, systemd autostart; fix bugs and docs
- chatterbox_cli_v4.py: cooperative stop/interrupt via threading.Event; fix force_split_sentence (word boundary instead of mid-word cut); fix synthesize_streaming normalization order (split before preprocess) - tts_service.py: FastAPI service with job queue, model cache, worker thread; LAN-accessible on 0.0.0.0:9999; audio_device default None (auto) - mcp_adapter.py: MCP adapter (stdio + streamable-http) wrapping REST API; update docstring and default TTS_URL to port 9999 - requirements.txt: add fastapi, uvicorn, httpx, mcp - README.md, BEDIENUNGSANLEITUNG.md: document service, MCP, AI integrations (Claude, Ollama, Open WebUI, llama.cpp, Home Assistant), systemd autostart - CLAUDE.md: reflect current architecture (service + adapter now implemented) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
bcf6374c29
commit
d1971049ce
7 changed files with 494 additions and 146 deletions
|
|
@ -13,13 +13,32 @@ Es wandelt geschriebenen Text in natürlich klingende Sprache um.
|
|||
|
||||
---
|
||||
|
||||
## Das Programm starten
|
||||
## Automatischer Start im Hintergrund
|
||||
|
||||
Öffne ein Terminal und gib folgende Befehle ein:
|
||||
Der Sprach-Service startet automatisch, sobald du dich am Computer anmeldest.
|
||||
Du musst nichts weiter tun — er läuft im Hintergrund und wartet auf Anfragen.
|
||||
|
||||
Ob der Service läuft, prüfst du so:
|
||||
|
||||
```bash
|
||||
systemctl --user status chatterbox-tts
|
||||
```
|
||||
|
||||
Bei Problemen neu starten:
|
||||
|
||||
```bash
|
||||
systemctl --user restart chatterbox-tts
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Das Kommandozeilen-Programm starten
|
||||
|
||||
Für die direkte Nutzung über das Terminal:
|
||||
|
||||
```bash
|
||||
conda activate chatterbox
|
||||
cd ~/Python_Programs/chatterbox
|
||||
cd ~/chatterbox-tts-cli
|
||||
```
|
||||
|
||||
---
|
||||
|
|
@ -85,7 +104,7 @@ python chatterbox_cli_v4.py --lang en --text "Good morning, how are you?"
|
|||
Mit `--speed` kann man einstellen, wie schnell der Text gesprochen wird.
|
||||
|
||||
- `1.0` = normale Geschwindigkeit (Standard)
|
||||
- `0.85` = etwas langsamer — gut für ältere Hörer
|
||||
- `0.85` = etwas langsamer — gut für entspanntes Zuhören
|
||||
- `0.75` = deutlich langsamer
|
||||
- `1.2` = etwas schneller
|
||||
|
||||
|
|
@ -149,6 +168,73 @@ python chatterbox_cli_v4.py --lang de \
|
|||
|
||||
---
|
||||
|
||||
## Den Service aus dem Netzwerk nutzen
|
||||
|
||||
Der Service ist im gesamten Heimnetzwerk erreichbar — zum Beispiel vom Handy,
|
||||
Tablet oder einem anderen Computer.
|
||||
|
||||
**Text vorlesen lassen** (aus jedem Gerät im Netzwerk):
|
||||
|
||||
```bash
|
||||
curl -X POST http://COMPUTER-IP:9999/speak \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"text": "Hallo aus dem Netzwerk", "lang": "de"}'
|
||||
```
|
||||
|
||||
`COMPUTER-IP` ersetzen durch die IP-Adresse dieses Computers (z. B. `192.168.1.42`).
|
||||
|
||||
**Aktuelle IP-Adresse herausfinden:**
|
||||
```bash
|
||||
hostname -I
|
||||
```
|
||||
|
||||
**Ausgabe stoppen:**
|
||||
```bash
|
||||
curl -X POST http://COMPUTER-IP:9999/stop
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## KI-Assistenten lassen vorlesen
|
||||
|
||||
Wenn du einen KI-Assistenten auf diesem oder einem anderen Gerät nutzt,
|
||||
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.
|
||||
|
||||
Beispiel-Anfrage an Claude:
|
||||
> „Lies mir bitte diesen Text vor: ..."
|
||||
|
||||
### Home Assistant
|
||||
|
||||
In der `configuration.yaml` folgendes eintragen:
|
||||
|
||||
```yaml
|
||||
rest_command:
|
||||
tts_sprechen:
|
||||
url: "http://COMPUTER-IP:9999/speak"
|
||||
method: POST
|
||||
content_type: "application/json"
|
||||
payload: '{"text": "{{ text }}", "lang": "de"}'
|
||||
```
|
||||
|
||||
Danach in einer Automation verwendbar:
|
||||
```yaml
|
||||
service: rest_command.tts_sprechen
|
||||
data:
|
||||
text: "Die Waschmaschine ist fertig."
|
||||
```
|
||||
|
||||
### Ollama / LM Studio / Open WebUI
|
||||
|
||||
Lokale KI-Modelle (z. B. llama, qwen) können über eine kleine Hilfsklasse mit dem
|
||||
Service verbunden werden — Details in der `README.md`.
|
||||
|
||||
---
|
||||
|
||||
## Typischer Arbeitsablauf
|
||||
|
||||
1. Text in einem Editor schreiben und als `.txt`-Datei speichern
|
||||
|
|
@ -175,11 +261,17 @@ python chatterbox_cli_v4.py --lang de \
|
|||
|
||||
**Kein Ton zu hören:**
|
||||
```bash
|
||||
# Ausgabegerät prüfen
|
||||
python -c "import sounddevice; print(sounddevice.query_devices())"
|
||||
```
|
||||
Dann `--audio-device pulse` oder das passende Gerät angeben.
|
||||
|
||||
**Service antwortet nicht:**
|
||||
```bash
|
||||
systemctl --user restart chatterbox-tts
|
||||
# Warte 5 Sekunden, dann:
|
||||
curl http://localhost:9999/health
|
||||
```
|
||||
|
||||
**„Modell nicht gefunden":**
|
||||
Beim ersten Start wird das Modell heruntergeladen (~2 GB).
|
||||
Sicherstellen, dass eine Internetverbindung besteht.
|
||||
|
|
@ -198,3 +290,5 @@ kann 30–60 Sekunden brauchen. Mit GPU (CUDA) dauert es ca. 5–10 Sekunden.
|
|||
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
|
||||
werden, nicht sofort mitten im Wort.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue