2.5 KiB
talk
Status: WIP — aktive Entwicklung (talk 2.0). Binde Spezifikation:
.scratch/talk-2-0/spec.md· Implementierungsplan:.scratch/talk-2-0/plan.md
talk macht Skripte und KI-Agenten hörbar: Ein Aufruf — talk "Build fertig" —
spricht eine kurze Nachricht über eine TTS-Provider-Kette
(ElevenLabs → OpenAI → Edge-TTS → OS-Stimme), serialisiert durch den Daemon
talkd. Cross-platform (Windows/macOS/Linux, amd64/arm64), statische Binaries,
keine Runtime-Abhängigkeiten.
Befehle
| Befehl | Zweck |
|---|---|
talk "Text" |
Ansage — Abkürzung für talk say, non-blocking |
talk say "Text" |
Ansage (Text als Argument oder von stdin) |
talk wrap -- <Befehl> |
Befehl ausführen, Erfolg/Misserfolg + Dauer ansagen |
talk mute / talk unmute |
Ansagen dauerhaft stummschalten / Stummschaltung aufheben |
talk status |
Daemon-Status (Queue, Mute, Provider, Version) |
talk cancel |
laufende und geplante Ansagen abbrechen |
talk voices |
verfügbare Stimmen anzeigen |
talk test |
Test-Ansage ausgeben |
talk doctor |
Selbstdiagnose des Setups |
talk setup |
geführte Ersteinrichtung (Wizard) |
Say-Flags (gelten auch für talk "Text"): --wait, --now, --priority,
--voice, --lang, --provider.
Hinweis: In diesem Stand ist say (und der Default-Aufruf
talk "Text") implementiert — die erste Ansage über OS-TTS (blockierend;
Daemon-Anbindung folgt). Alle anderen Befehle sind Stubs und melden
not implemented yet (Exit-Code ≠ 0).
OS-TTS auf Linux (Dev-Abhängigkeit espeak)
Der OS-Provider osbuiltin nutzt auf Linux zwei Wege:
- Audio-Bytes (Wiedergabe über den eingebauten oto-Sink): benötigt
espeak(oderespeak-ng). Auf NixOS als Dev-Abhängigkeit:nix shell nixpkgs#espeak-ng. - Direktansage ohne espeak:
spd-say(speech-dispatcher) — spielt selbst über den Daemon ab, kann aber nachspd-say --helpkeine Bytes in Dateien/Pipes liefern.talknutzt diesen Weg automatisch, wenn kein espeak vorhanden ist.
TALK_AUDIO_SINK=null (oder audio.sink = "null" in der config.toml)
schaltet jede Tongabe ab — für CI und Server.
Entwicklung
go build ./... # bauen
go test ./... # Tests
go vet ./... # statische Analyse
gofmt -l . # Formatierung prüfen (leerer Output = ok)
CI: .gitea/workflows/test.yml (Gitea Actions) läuft vet, gofmt-Check, Tests
und Build bei jedem Push und Pull Request.
Lizenz
MIT — siehe LICENSE.