docs(readme): Provider-Kette, Keys/Endpunkte und Voice-Mapping dokumentieren
This commit is contained in:
1 parent
28b4e558c3
commit
8351d40717
1 file changed
+42
-1
@@ -29,10 +29,51 @@ Say-Flags (gelten auch für `talk "Text"`): `--wait`, `--now`, `--priority`,
|
|||||||
`--voice`, `--lang`, `--provider`.
|
`--voice`, `--lang`, `--provider`.
|
||||||
|
|
||||||
**Hinweis:** In diesem Stand ist `say` (und der Default-Aufruf
|
**Hinweis:** In diesem Stand ist `say` (und der Default-Aufruf
|
||||||
`talk "Text"`) implementiert — die erste Ansage über OS-TTS (blockierend;
|
`talk "Text"`) implementiert — inklusive der kompletten Provider-Kette
|
||||||
|
(ElevenLabs → OpenAI → Edge-TTS → OS-Stimme, blockierend;
|
||||||
Daemon-Anbindung folgt). Alle anderen Befehle sind Stubs und melden
|
Daemon-Anbindung folgt). Alle anderen Befehle sind Stubs und melden
|
||||||
`not implemented yet` (Exit-Code ≠ 0).
|
`not implemented yet` (Exit-Code ≠ 0).
|
||||||
|
|
||||||
|
### Provider-Kette (Task 03)
|
||||||
|
|
||||||
|
Ohne Pin läuft die Vier-Stufen-Fallback-Kette
|
||||||
|
**ElevenLabs → OpenAI TTS → Edge-TTS → OS built-in**: Bei fehlendem Key,
|
||||||
|
HTTP-Fehler, Timeout oder Netz-Problem fällt die Kette automatisch auf die
|
||||||
|
nächste Stufe; jeder Fallback wird auf stderr protokolliert (nie still).
|
||||||
|
Pinnen per `--provider=<name>` oder `provider = "<name>"` in der
|
||||||
|
config.toml.
|
||||||
|
|
||||||
|
| Stufe | Key (Env) | Default-Endpunkt | Audio |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `elevenlabs` | `TALK_ELEVENLABS_KEY` | `https://api.elevenlabs.io` | mp3 |
|
||||||
|
| `openai` | `TALK_OPENAI_KEY` | `https://api.openai.com` | mp3 |
|
||||||
|
| `edge` | — (kostenlos) | `wss://speech.platform.bing.com/...` | mp3 |
|
||||||
|
| `osbuiltin` | — | lokale OS-TTS | WAV/PCM |
|
||||||
|
|
||||||
|
Keys laufen ausschließlich über Env-Variablen (nie in die config.toml).
|
||||||
|
Endpunkte sind konfigurierbar — Datei `[providers.<name>] endpoint = "…"`
|
||||||
|
bzw. Env `TALK_ELEVENLABS_ENDPOINT` / `TALK_OPENAI_ENDPOINT` /
|
||||||
|
`TALK_EDGE_ENDPOINT` (Env schlägt Datei; so zeigen Tests/CI die Kette auf
|
||||||
|
Fake-Server). Das OpenAI-Modell ist konfigurierbar
|
||||||
|
(`[providers.openai] model`, Default `tts-1`).
|
||||||
|
|
||||||
|
Stimmen: neutralen Repo-Defaults je Provider+Sprache (ElevenLabs
|
||||||
|
„Rachel", OpenAI „alloy", Edge `de-DE-KatjaNeural`/`en-US-AriaNeural`)
|
||||||
|
kann man pro Sprache überordnen — config.toml:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[voice.elevenlabs]
|
||||||
|
de = "21m00Tcm4TlvDq8ikWAM" # eigene Stimme je Sprache
|
||||||
|
en = "21m00Tcm4TlvDq8ikWAM"
|
||||||
|
|
||||||
|
[voice.edge]
|
||||||
|
de = "de-DE-KatjaNeural"
|
||||||
|
```
|
||||||
|
|
||||||
|
Rangfolge: `--voice`-Flag > `voice.<provider>.<lang>` > Repo-Default.
|
||||||
|
MP3 wird von der Binärdatei selbst dekodiert (reiner Go-Dekoder, kein
|
||||||
|
ffmpeg, CGO-frei).
|
||||||
|
|
||||||
### OS-TTS auf Linux (Dev-Abhängigkeit espeak)
|
### OS-TTS auf Linux (Dev-Abhängigkeit espeak)
|
||||||
|
|
||||||
Der OS-Provider `osbuiltin` nutzt auf Linux zwei Wege:
|
Der OS-Provider `osbuiltin` nutzt auf Linux zwei Wege:
|
||||||
|
|||||||
Reference in new issue
Block a user