Voice settings now list only the voices that speak the app language (German shows German voices, English shows English ones) as a horizontal carousel: one card per voice, a play button next to the name, tap to make it the active voice. Changing the app language moves the saved voice to that language. The hosted voice providers (ElevenLabs, OpenAI, Cartesia, Fish Audio) are removed; Kokoro on the server is the only voice. E2E runs against a stub Kokoro server so the carousel is covered. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KxoSHAyzMXvdtwcDJZcn57
1.4 KiB
1.4 KiB
Kokoro (lokale Stimme)
Kokoro ist die einzige Stimme in EvOo: Kokoro-82M (Apache 2.0) läuft lokal über Kokoro-FastAPI, ohne Cloud-Dienst und ohne API-Key.
Schnellstart
docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu:latest
Optional auf dem EvOo-Server (wenn Kokoro woanders läuft):
export KOKORO_BASE_URL=http://127.0.0.1:8880
In EvOo verbinden
- Stimme in den Einstellungen öffnen.
- Kann sprechen einschalten. EvOo prüft
GET /v1/audio/voicesund speichert einen Platzhalter-Token (local-kokoro), kein API-Key. - Im Karussell eine Stimme antippen; der Play-Knopf spielt sie vorher an.
- 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 (das Standard-Image von Kokoro-FastAPI hat keine deutschen df_/dm_-Stimmen), zeigt EvOo alle Stimmen.
Fehler
| Meldung | Ursache |
|---|---|
| Kokoro lokal nicht erreichbar… | Kokoro-FastAPI läuft nicht oder KOKORO_BASE_URL stimmt nicht. |
API-Dokumentation nach Start: http://127.0.0.1:8880/docs