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>
52 lines
2.3 KiB
Markdown
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`
|