7893c60e53
Dokumentation: Datum-Normalisierung und Normalisierungs-Übersicht ergänzt
...
- README: Feature-Liste, CLI-Optionen (--no-normalize-*), Tabelle aller
Normalisierungsschritte mit Beispielen
- BEDIENUNGSANLEITUNG: Datumsformat in "Was das Programm automatisch macht"
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 01:33:49 +02:00
86b69af1d6
Aufnahme-Samplerate auf 48000 Hz geändert (MOTU M2 Nativrate)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 00:34:10 +02:00
2a2481c9a0
Dokumentation: Voice-Cloning-Aufnahme mit arecord
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 00:33:23 +02:00
ff3e370bbd
Datum-Normalisierung: DD.MM.YYYY → deutsche Ordinalform
...
03.06.2026 → "Dritter Sechster Zwanzigsechsundzwanzig"
31.12.2027 → "Einunddreißigster Zwölfter Zwanzigsiebenundzwanzig"
- DATE_RE erkennt DD.MM.YYYY (mit/ohne führende Null)
- ordinal_de(): nominativer Ordinal (1→Erster, 12→Zwölfter, 31→Einunddreißigster)
- year_for_date_de(): Datums-Jahrform (2026→Zwanzigsechsundzwanzig)
- normalize_dates() wird VOR normalize_times() aufgerufen (verhindert
dass TIME_RE "03.06" als Uhrzeit frisst)
- Neues CLI-Flag --no-normalize-dates
- Parameter normalize_date_values in preprocess_tts_text, synthesize_non_streaming,
synthesize_streaming
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 23:45:03 +02:00
ce46d4aa59
Dokumentation: keep_audio und GET /audio/{job_id} ergänzen
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 21:12:49 +02:00
fe74b84360
Audio-Download-Endpunkt GET /audio/{job_id} hinzufügen
...
- SpeakRequest: keep_audio=true speichert WAV in ~/.cache/chatterbox-tts/
- SpeakJob: audio_path-Feld für gespeicherte WAV-Datei
- GET /audio/{job_id}: liefert WAV als FileResponse, löscht Datei danach
- mcp_adapter: keep_audio-Parameter in speak() weitergereicht
- Docstring: neuen Endpunkt dokumentiert
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 21:09:06 +02:00
69de37d1a0
CLAUDE.md aus Versionskontrolle entfernen und ignorieren
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 11:43:30 +02:00
c2ceb9a76c
Merge remote: LICENSE übernehmen, lokales README behalten
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 11:42:15 +02:00
34a34907a8
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>
2026-06-03 11:36:54 +02:00
8e34186c1a
Initial commit
2026-06-03 11:35:27 +02:00
d1971049ce
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>
2026-05-16 10:19:00 +02:00
bcf6374c29
Erweiterung: Stop-Mechanismus, REST-Service und MCP-Adapter
...
- chatterbox_cli_v4.py: kooperativer Stop-Mechanismus via threading.Event
(STOP_REQUESTED, request_stop, clear_stop); PlaybackWorker, synthesize_non_streaming
und synthesize_streaming prüfen das Event vor jedem Chunk; --stop CLI-Flag
- tts_service.py: FastAPI-Service mit Modell-Caching, Job-Queue und Worker-Thread;
Endpunkte: POST /speak, POST /stop, GET /health, GET /status, GET /voices
- mcp_adapter.py: MCP-Adapter (stdio/streamable-http) über tts_service; Tools:
speak, stop, get_status, list_voices
- requirements.txt: fastapi, uvicorn, httpx, mcp ergänzt
- CLAUDE.md: Architektur und Startbefehle dokumentiert
- .gitignore: Ideen/-Verzeichnis ausgeschlossen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 09:46:43 +02:00
bed29fb1c8
Initial commit: chatterbox TTS CLI v4
2026-05-16 08:56:50 +02:00