Text-to-Speech (Polly, Azure, ElevenLabs, Piper)
TTSModule liest Nachrichten per Sprachausgabe vor — ausgelöst per !tts, bei Spenden, im Meme-/OCR-/Zappi-Modul oder über das Quick-Control-Kontextmenü. Der Anbieter wird global gewählt (Sonstige Einstellungen › Integrationen › Text-to-Speech). Umschalten wirkt sofort, ohne Neustart. Piper braucht keinerlei Konto und läuft offline. Für die Karten-Ansicht (ohne Maskottchen) gibt es ein eigenes Aussehen-Panel mit Farb-Presets oder KI-Design.
Auslöser Chat-Befehl !tts <Text> (Standard: alle), Spenden-Vorlesung oder Quick-Control-Rechtsklick.
Voraussetzungen
- Piper (empfohlen zum Start): kein Konto, kein Key. Beim ersten Einsatz lädt die App die Piper-Binary (~20 MB) plus die deutsche Stimme de_DE-thorsten-medium (~60 MB) nach userData/piper-bin. Danach komplett offline.
- Amazon Polly: AWS-Konto + IAM-Benutzer mit polly:SynthesizeSpeech und polly:DescribeVoices, Access Key / Secret Key / Region.
- Azure Speech: Azure-Konto, „Speech"-Ressource, deren Schlüssel + Region (z.B. westeurope). 500.000 Zeichen/Monat sind gratis.
- ElevenLabs: Konto auf elevenlabs.io, API-Key aus dem Profil. Gratis-Kontingent ist klein (~10.000 Zeichen/Monat).
Schritt für Schritt
- Sonstige Einstellungen › Integrationen › „Text-to-Speech (Anbieter)" öffnen und unter „Anbieter" den gewünschten Dienst wählen.
- Piper: „Binary + deutsche Stimme automatisch nachladen" aktiviert lassen. Beim ersten !tts lädt alles nötige einmalig — währenddessen kurz warten. Eigene Piper-Installation? Pfad zu piper.exe und Stimmen-Ordner (.onnx / .onnx.json) in denselben Feldern eintragen.
- Amazon Polly: IAM-Benutzer anlegen, Policy „AmazonPollyReadOnlyAccess" zuweisen, dann Access Key ID / Secret Access Key / Region unter „Text-to-Speech (Zugangsdaten)" › Amazon Polly eintragen. (Alte config/aws-credentials.json wird beim ersten Start automatisch übernommen.)
- Azure Speech: Im Azure-Portal eine „Speech"-Ressource anlegen, unter „Schlüssel und Endpunkt" Key + Region kopieren und unter „Text-to-Speech (Zugangsdaten)" › Azure Speech eintragen.
- ElevenLabs: API-Key unter elevenlabs.io › Profil › API Keys erzeugen und unter „Text-to-Speech (Zugangsdaten)" › ElevenLabs eintragen. Optional eine eigene Voice-ID als Standard-Stimme setzen.
- Standard-Stimme wählen: Im selben Bereich unter „Standard-Stimmen je Anbieter" — das Auswahlfeld schlägt die verfügbaren Stimmen des jeweiligen Anbieters vor (Freitext bleibt möglich).
- Pro Modul feinjustieren: TTS-, Meme- und OCR-Tab haben eine eigene Stimmen-Liste (zufällige Auswahl); im Spenden-Tab lassen sich Ansager- und Spender-Stimme getrennt setzen.
- Rechte & Filter: Im Befehle-Tab festlegen, wer !tts nutzen darf; im TTS-Tab BadWordFilter und URL-Filter aktivieren.
Wenn's nicht klappt
- Kein Ton nach Anbieter-Wechsel: Prüfen, ob unter „Text-to-Speech (Zugangsdaten)" für den gewählten Anbieter ein gültiger Key/Region bzw. bei Polly Access Key hinterlegt ist. Die Zeile „Sonstige Einstellungen“ zeigt sonst keinen Fehler — der Fehler steht im Home-Log-Fenster.
- Piper: erster !tts dauert lange / kein Ton — der einmalige Download (~80 MB) läuft noch. Bei Firewall/Antivirus: piper.exe in userData/piper-bin freigeben. Ohne Internet vorab: Binary + Stimme manuell dorthin legen und die Pfade im Tab setzen.
- Azure: HTTP 401/403 — Key oder Region falsch (Region ist der Kurzname wie „westeurope“, nicht „West Europe“).
- ElevenLabs: HTTP 401 — Key ungültig; HTTP 429 — Monatskontingent aufgebraucht.
- Polly „AccessDenied“ / „not authorized to perform polly:SynthesizeSpeech“: IAM-Policy fehlt oder ist zu eng.
- Eine bestimmte Stimme wird ignoriert: Stimmnamen sind anbieterspezifisch (Polly „Vicki“, Azure „de-DE-KatjaNeural“, ElevenLabs eine ID, Piper „de_DE-thorsten-medium“). Bei unbekanntem Namen nutzt die App die Standard-Stimme des Anbieters.
- Zugangsdaten niemals ins Git committen — config/tts-credentials.json liegt verschlüsselt und ist per .gitignore ausgeschlossen.
Zuletzt aktualisiert: 19. September 2026