evOo-local/docs/kokoro-voice.md
cynarAI 8ae3764b05
Speak German through a local Piper server, since Kokoro has no German voices (#182)
Kokoro-FastAPI ships English, Spanish, French, Hindi, Italian, Japanese,
Portuguese and Chinese voices only. The German presets pointed at voice
ids no Kokoro server has, so German users either got English voices or
picked a voice that failed to speak.

The local voice now also lists the German voices whose Piper model is
installed (PIPER_BASE_URL) and speaks them through Piper's /synthesize
as WAV. Thorsten, the clearest model, is the German default. Mobile
plays WAV as well as MP3, and the E2E voice stub stands in for Piper.


Claude-Session: https://claude.ai/code/session_01KWEAjTw26eRf3ZXTXfRjmD

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-09 11:55:51 +02:00

52 lines
2.3 KiB
Markdown

# Kokoro (lokale Stimme)
Kokoro ist die lokale Stimme in EvOo: **Kokoro-82M** (Apache 2.0) läuft über [Kokoro-FastAPI](https://github.com/remsky/Kokoro-FastAPI), ohne Cloud-Dienst und ohne API-Key. Deutsche Stimmen kommen aus Piper (siehe unten).
## Schnellstart
```bash
docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu:latest
```
Optional auf dem EvOo-Server (wenn Kokoro woanders läuft):
```bash
export KOKORO_BASE_URL=http://127.0.0.1:8880
```
## In EvOo verbinden
1. **Stimme** in den Einstellungen öffnen.
2. **Kann sprechen** einschalten. EvOo prüft `GET /v1/audio/voices` und speichert einen Platzhalter-Token (`local-kokoro`), kein API-Key.
3. Im Karussell eine Stimme antippen; der Play-Knopf spielt sie vorher an.
4. Voice First / CallView nutzt dann `POST /v1/audio/speech` (OpenAI-kompatibel, `stream: false`).
## Stimmen und Sprache
Kokoro kodiert die Sprache im ersten Buchstaben der Stimm-ID (`a`/`b` Englisch, `d` Deutsch, `e` Spanisch, `f` Französisch, …). EvOo zeigt nur die Stimmen der eingestellten App-Sprache und wechselt die gespeicherte Stimme mit, wenn die Sprache wechselt. Bietet der Server keine Stimme in dieser Sprache an, zeigt EvOo alle Stimmen.
## Deutsche Stimmen (Piper)
Kokoro hat keine deutschen Stimmen. Die kommen aus [Piper](https://github.com/OHF-Voice/piper1-gpl), das ebenfalls lokal und ohne GPU läuft. EvOo führt sie als `dm_thorsten`, `df_kerstin`, `df_eva`, `df_ramona` und `dm_karlsson` und zeigt nur die, deren Modell auf dem Piper-Server liegt.
```bash
python3 -m venv ~/piper && ~/piper/bin/pip install "piper-tts[http]"
mkdir -p ~/piper/voices && cd ~/piper/voices
for v in de_DE-thorsten-high de_DE-kerstin-low de_DE-eva_k-x_low de_DE-ramona-low de_DE-karlsson-low; do
~/piper/bin/python -m piper.download_voices "$v"
done
~/piper/bin/python -m piper.http_server -m de_DE-thorsten-high --data-dir ~/piper/voices --host 127.0.0.1 --port 5150
export PIPER_BASE_URL=http://127.0.0.1:5150
```
Ohne `PIPER_BASE_URL` fragt EvOo Piper gar nicht erst an.
## Fehler
| Meldung | Ursache |
|---------|---------|
| *Kokoro lokal nicht erreichbar…* | Kokoro-FastAPI läuft nicht oder `KOKORO_BASE_URL` stimmt nicht. |
| *Deutsche Stimme nicht erreichbar…* | Piper läuft nicht oder `PIPER_BASE_URL` fehlt. |
API-Dokumentation nach Start: `http://127.0.0.1:8880/docs`