Commit Graph
2 Commits
Author SHA1 Message Date
Mikei386 ff064685ce router: TTS auf offiziellen Kikiri-Deutsche-Pfad umgestellt
Ersetzt die alte Implementierung (kokoro 0.7.16 + espeak.EspeakG2P)
durch den offiziellen Kikiri-Deutsche-Inferenzpfad:

- semidark/kokoro-Fork (0.9.4) mit lang_code='d'
- semidark/misaki-Fork (0.9.4) mit misaki.de.DEG2P
  (Text-Normalisierung + espeak-ng + Aussprache-Overrides)
- Verbessertes Chunking (Split an Satzgrenzen, 400 Zeichen)
- repo_id='hexgrad/Kokoro-82M' für KModel/KPipeline

Änderungen:
- router/tts_worker.py: KModel/KPipeline API aktualisiert,
  Monkey-Patching entfernt, Docstring aktualisiert
- deploy/install.sh: semidark-Forks installieren (misaki[de],
  kokoro --no-deps, spacy für misaki.en-Import)
- README.md: G2P-Pfad, Chunking, Python-Pakete, Python-3.13-Hinweis

Getestet: 43/43 lokale Tests, E2E auf Zielsystem (WAV/MP3,
LAN-Zugriff, parallele Qwen/TTS-Operation, Chat intakt).
2026-08-19 13:09:29 +02:00
Mikei386 6db10fbc3f router: deutsche Sprachausgabe mit Kokoro-82M (CPU-only)
Fügt einen OpenAI-kompatiblen TTS-Endpunkt POST /v1/audio/speech hinzu.
Die Synthese läuft in einem separaten, langlebigen Worker
(mike-ai-kokoro.service) mit eigenem Venv (CPU-only torch) und hält die
Modelle dauerhaft im RAM (niedrige Warm-Start-Latenz).

- Zwei deutsche Stimmen: kikiri-german-martin, kikiri-german-victoria
  (Apache 2.0, je ~327 MB) unter /opt/mike-ai/models/kokoro/
- Deutsche G2P über espeak-ng (phonemizer), kein spacy/thinc 9.x nötig
  (kokoro mit --no-deps + misaki ohne [en], Python 3.13-kompatibel)
- Formate: mp3 (Default), wav, flac, pcm; speed 0.5-2.0
- /status um tts.*-Felder erweitert (reachable, ready, voices, ...)
- TTS ohne GPU-Lock: blockiert weder Qwen/llama.cpp noch FLUX
- systemd-Unit mike-ai-kokoro.service (Start beim Boot)
- install.sh/deploy.sh um Kokoro-Venv + Modell-Download erweitert
- Mock-TTS-Worker + 11 TTS-Tests (insgesamt 43, alle bestanden)
- Hörproben (je ~40 s) + Benchmark (RTF ~0.23, ~4.3x Echtzeit)

Kein Push – erst nach User-Freigabe.
2026-08-19 12:05:09 +02:00