Zum Inhalt springen
  • Dunkel
  • Hell
  • System

Reward: Text-to-Speech

Reward: TTS Nachricht

Pro

Text vom User wird vorgelesen. Mit Length-Cap (140 Zeichen), Profanity-Filter und Refund bei Block.

Steps
6
Cooldown
0s/User
Cooldown
1 minglobal
Zugriff
Public

Trigger setzt unter anderem Argument %user% Wer den TTS bestellt hat. Variablen-Doku , Argument %rawInput% Der Text vom User. Variablen-Doku , Argument %redemptionId% Für Update Redemption Status. Variablen-Doku .

FeldWert
TitleTTS-Nachricht
Cost1000
PromptDein Text wird vorgelesen (max 140 Zeichen, keine Slurs).
User Input Requiredaktiv
Skip Request Queueaktiv
Global Cooldown60

Trigger: Twitch > Channel Reward > Reward Redemption mit Reward-Filter TTS-Nachricht.

If/Else: Länge > 140?

Core Logic If/Else
Input $length(%rawInput%)$
Operation Greater Than
Value 140
Then

Update Redemption Status. Cancel

Twitch Rewards Update Redemption Status
Redemption ID %redemptionId%
Status Canceled
Then

Send Message to Channel: Zu lang

Twitch Chat Send Message to Channel
Message @%user% zu lang (max 140). Points zurück.
Then

Break

Core Logic Break

Stoppt die laufende Action. Alle folgenden Sub-Actions in derselben Action werden übersprungen.

If/Else: Profanity-Filter (Regex)

Core Logic If/Else

Case-insensitive Regex gegen Slurs, Doxxing-Begriffe, Spam-Wörter.

Input %rawInput%
Operation Regex Match
Value (?i)(slur1|slur2|nigg|f[a4]gg|r[e3]t[a4]rd|h[a4]rd-r|@everyone|@here|http://|https://|discord\.gg/|bit\.ly)
Then

Update Redemption Status. Cancel

Twitch Rewards Update Redemption Status
Redemption ID %redemptionId%
Status Canceled
Then

Send Message to Channel: Slur/Link blockiert

Twitch Chat Send Message to Channel
Message @%user% Inhalt nicht erlaubt. Points zurück.
Then

Break

Core Logic Break

Stoppt die laufende Action. Alle folgenden Sub-Actions in derselben Action werden übersprungen.

Speak (TTS). Lese den Text

Speaker.bot Speak

Nutzt Windows-TTS. Voice = installierte Voice, Volume + Rate anpassbar.

Voice Microsoft Hedda Desktop (de-DE)
Volume 80
Rate 0
Text %user% sagt: %rawInput%

Update Redemption Status. Fulfilled

Twitch Rewards Update Redemption Status
Redemption ID %redemptionId%
Status Fulfilled

Send Message: Bestätigung

Twitch Chat Send Message to Channel
Message 🔊 @%user%: %rawInput%
AzaBot: 🔊 @SpeechFan: Hallo Twitch, schöner Stream heute!
So sieht's im Chat aus
  1. 1 If/Else: $length(%rawInput%)$ Greater Than 140
    1. Then 1a Update Redemption Status: Canceled
    2. Then 1b Send Message: zu lang
    3. Then 1c Break
  2. 2 If/Else: %rawInput% Regex Match (Profanity)
    1. Then 2a Update Redemption Status: Canceled
    2. Then 2b Send Message: blockiert
    3. Then 2c Break
  3. 3 Speak (TTS): "%user% sagt: %rawInput%"
  4. 4 Update Redemption Status: Fulfilled
  5. 5 Send Message: "🔊 @%user%: ..."

Eigene Regex-Liste pflegen. Empfehlung als Startpunkt:

(?i)(?:
slur1|slur2| # explizite Slurs (anpassen für deine Sprache)
nigg|f[a4]gg|r[e3]t[a4]rd| # mit L33t-Speak-Varianten
h[a4]rd[-_]?r| # N-Word-Hard-R Variants
@everyone|@here| # Discord-Ping-Spam
http[s]?:\\/\\/| # URLs blocken
discord\\.gg\\/| # Discord-Invites
bit\\.ly|tinyurl # Link-Shortener
)

Volle Listen findest du auf GitHub als JSON (google-profanity-words z.B.). Lange Listen lieber per C# Execute Code + externer Wordliste statt riesigem Regex.

VoiceQuelleQualität
Microsoft Hedda (de-DE)Windows-StandardMonoton, kostenlos
Microsoft Stefan (de-DE)Windows-StandardMonoton, männlich
Streamer.bot TTS-EngineSB built-inSame
ElevenLabsAPI (kostenpflichtig)Premium-Qualität, mehrere Stimmen
Azure CognitiveAPI (kostenpflichtig)Premium-Qualität, Neural-Voices
TikTok-TTS via mokoshalbInoffiziell”Trump”-Stimme, lustig

Für Free-Setup reicht Windows-TTS. Wenn du eine Premium-Voice willst, gibts SB-Plugins für ElevenLabs und Streamlabs-TTS (manchmal kostenlos).

  • Voice nicht installiert: Speak schlägt still fehl. In Windows-Settings unter Time & Language > Speech weitere Voices nachinstallieren.
  • TTS während Speak() läuft: wenn 2 Redeems hintereinander, würde der zweite den ersten unterbrechen oder warten (je nach OBS-Audio-Mixer-Setup). Mit Global Cooldown ≥ 60s entschärft.
  • Bot-Account braucht spezielle Twitch-Rolle: irrelevant für TTS, nur für Refund-Sub-Actions.
  • Profanity-Filter umgangen mit Zeichen-Substitution: S l u r mit Spaces zwischen Buchstaben. Regex härten mit \s* zwischen Chars: s\s*l\s*u\s*r. Niemals als alleiniger Schutz verlassen, Mods im Loop halten.
  • TTS-Volume reisst Stream-Mix runter: OBS-Audio-Mixer für die TTS-Source auf -10dB.
  • Voice-Auswahl per Reward: pro Voice ein Reward (TTS Hedda, TTS Stefan, TTS TikTok).
  • Mod-Approval: User-Input mit Skip Request Queue = false, Mods entscheiden manuell.
  • TTS-Banner mit Text: gleichzeitig OBS-Source mit Text einblenden (GDI-Text-Source). Visueller Doppel-Effekt.
  • Logging: Core > File I/O > Write To File für alle TTS-Texts (Audit-Log mit User + Timestamp).
  • Auto-Mod-Check: User-Score (siehe User Globals) tracken, Wiederholungstäter automatisch blocken.