WildcatTTS Bot Documentation
WildcatTTS is currently invite-only. Request access.
Commands
Text-To-Speech Commands
| Command | Description |
|---|---|
Direct TTS |
|
| !tts <message> | |
!tts Welcome everyone to the stream!
Permission: Everyone |
|
General |
|
| !tts status | |
!tts status
Notes: Shows engine state, mode, queue length, default voice, pitch, speed, emotion, and language boost settings. Permission: Everyone |
|
| !tts voices | |
!tts voices
Permission: Everyone |
|
| !tts languageslist | |
!tts languageslist
Permission: Everyone |
|
| !tts commands (Alias: !tts help) |
|
!tts commands
!tts help
Permission: Everyone |
|
| !tts prefs (Aliases: !tts preferences, !tts settings) |
|
!tts prefs
!tts preferences
!tts settings
Permission: Everyone |
|
| !myvoice | |
!myvoice
Notes: Same as Permission: Everyone |
|
Engine & Mode Control (Moderator Only) |
|
| Mod!tts on (Alias: !tts enable) |
|
!tts on
!tts enable
Permission: Moderator |
|
| Mod!tts off (Alias: !tts disable) |
|
!tts off
!tts disable
Permission: Moderator |
|
| Mod!tts mode [all|command|bits_points_only] | |
!tts mode all
(Speaks all chat messages and events)
!tts mode command
(Only speaks commands and enabled events; default mode)
!tts mode bits_points_only
(Only speaks Bits cheers and Channel Point redemptions)
!tts mode bits
(Alias for bits_points_only)
!tts mode points
(Alias for bits_points_only)
!tts mode
(Shows current mode)
Notes: all: TTS speaks all chat messages (except ignored users) and enabled events, based on !tts permission. Permission: Moderator |
|
| Mod!tts permission [everyone|all|subs|vip|mods] | |
!tts permission everyone
!tts permission subs
!tts permission vip
!tts permission mods
!tts permission
(shows the current permission filter)
Notes: everyone or all: TTS speaks messages from all users (Default). Permission: Moderator |
|
| Mod!tts bits [on|off|min <amount>] | |
|
Mod
!tts bits on
Mod
!tts bits off
Mod
!tts bits min 100
Mod
!tts bits
(shows the current cheer settings)
Description:
Permission: Moderator |
|
Channel Points → TTS (Web Dashboard Only) |
|
| Channel Points → TTS | |
|
Note: This feature is configured exclusively through the WildcatTTS Web Dashboard under the "Channel Points → TTS" section. How It Works:
Configuration Options:
Skip the Reward Queue:
TTS Modes: Works with all TTS modes (All Messages, Commands Only, Bits/Points Only). Requirements: Grant channel:manage:redemptions and channel:read:redemptions permissions during dashboard sign-in. Permission: Streamer/Broadcaster (via Web Dashboard) |
|
Queue Management (Moderator Only) |
|
| Mod!tts pause | |
!tts pause
Notes: The bot adds new messages and events to the queue, but does not speak them until resumed. Permission: Moderator |
|
| Mod!tts resume | |
!tts resume
Permission: Moderator |
|
| Mod!tts clear | |
!tts clear
Notes: This command removes messages from the queue. It does not stop audio that is playing or generating. Permission: Moderator |
|
| !tts stop | |
!tts stop
Notes:
Permission: Everyone for their own messages, Moderator for others |
|
User & Event Preferences |
|
| !tts voice <voice_id|reset> | |
!tts voice Friendly_Person
!tts voice reset
!tts voice
(displays current personal preference)
Notes: Use reset to use the channel default voice. Use !tts voices to get a list of voice IDs. Permission: Everyone (for their own preference) |
|
| !tts emotion <emotion_name|reset|auto> | |
!tts emotion happy
!tts emotion reset
!tts emotion
(displays current personal preference)
Notes: Valid emotions: neutral, happy, sad, angry, fearful, disgusted, surprised. Use reset for the channel default. Permission: Everyone (for their own preference) |
|
| !tts language <language|reset> (Alias: !tts lang) |
|
!tts language English
!tts lang Japanese
!tts language reset
!tts language
(displays current personal preference)
Notes: Language boost improves pronunciation for a language. Use reset or auto for the channel default. See Language Boost section or use !tts languageslist to see all options. Permission: Everyone (for their own preference) |
|
| !tts pitch <value|reset> | |
!tts pitch 2
!tts pitch -3
!tts pitch reset
!tts pitch
(displays current personal preference)
Notes: Value must be an integer from -12 to 12 (0 is default). Use reset for the channel default. Permission: Everyone (for their own preference) |
|
| !tts speed <value|reset> | |
!tts speed 1.2
!tts speed 0.8
!tts speed reset
!tts speed
(displays current personal preference)
Notes: Value must be a number from 0.5 to 2.0 (1.0 is default). Use reset for the channel default. Permission: Everyone (for their own preference) |
|
| !tts ignore <username> !tts ignore add <username> |
|
Usage:
!tts ignore yourusername
(if you want to ignore
yourself)
Mod
!tts ignore add SomeOtherUser
(if you are a
mod/broadcaster)
Permission: Everyone (to add themselves), Moderator (to add others) |
|
| Mod!tts ignore del
<username> (Aliases: delete, rem, remove) |
|
|
Mod
!tts ignore del SomeUser
Permission: Moderator |
|
| Mod!tts ignored | |
|
Mod
!tts ignored
Permission: Moderator |
|
| Mod!tts events [on|off] | |
|
Mod
!tts events on
Mod
!tts events off
Mod
!tts events
(shows current event announcement status)
Permission: Moderator |
|
Channel-Wide Default Configuration (Moderator Only) |
|
| Mod!tts defaultvoice <voice_id|reset> | |
|
Mod
!tts defaultvoice Friendly_Person
Mod
!tts defaultvoice reset
Mod
!tts defaultvoice
(displays current channel default)
Notes: Use reset for the system default. Use !tts voices to see available voice IDs. Permission: Moderator |
|
| Mod!tts defaultemotion <emotion_name|reset> | |
|
Mod
!tts defaultemotion happy
Mod
!tts defaultemotion reset
Mod
!tts defaultemotion
(displays current channel default)
Notes: Valid emotions: neutral, happy, sad, angry, fearful, disgusted, surprised. Use reset for the system default (neutral). Permission: Moderator |
|
| Mod!tts defaultlanguage <language|reset> | |
|
Mod
!tts defaultlanguage English
Mod
!tts defaultlanguage reset
Mod
!tts defaultlanguage
(displays current channel default)
Notes: Use reset or auto for the system default. See Language Boost section or use !tts languageslist to see available options. Permission: Moderator |
|
| Mod!tts defaultpitch <value|reset> | |
|
Mod
!tts defaultpitch 2
Mod
!tts defaultpitch reset
Mod
!tts defaultpitch
(displays current channel default)
Notes: Value must be an integer from -12 to 12 (0 is default). Use reset for the system default (0). Permission: Moderator |
|
| Mod!tts defaultspeed <value|reset> | |
|
Mod
!tts defaultspeed 1.2
Mod
!tts defaultspeed reset
Mod
!tts defaultspeed
(displays current channel default)
Notes: Value must be a number from 0.5 to 2.0 (1.0 is default). Use reset for the system default (1.0). Permission: Moderator |
|
Emote Description Management (Moderator Only) |
|
| Mod!tts emote <emoteName> | |
|
Usage:
Mod
!tts emote LUL
(shows the current cached
description)
Mod
!tts emote regenerate LUL
(clears cache; AI will
re-describe on next use)
Mod
!tts emote set LUL = a person laughing
(sets a custom description — channel emotes only)
Description:
Notes: When an emote appears in chat for the first time, AI generates a text description. The bot caches descriptions permanently. Use this command to view, change, or regenerate emote descriptions. Permission: Moderator (set/regenerate only for channel emotes) |
|
Pronunciation & Filtering (Moderator Only) |
|
| Mod!tts pronounce <word> = <how to say it> | |
|
Usage:
Mod
!tts pronounce wcat = wildcat
(adds or changes an entry)
Mod
!tts pronounce list
(shows the entries for this channel)
Mod
!tts pronounce remove wcat
(removes an entry)
Mod
!tts pronounce off lfg
(stops a built-in entry)
Mod
!tts pronounce test ngl that was wild
(shows the result without speaking)
Mod
!tts pronounce defaults
(lists the built-in entries)
Description:
Notes: The word is not case-sensitive, and it must match a full word. A channel can have a maximum of 100 entries. A word can have a maximum of 40 characters. A spoken form can have a maximum of 120 characters. You can also change these entries in the Web Dashboard. Permission: Moderator (broadcaster only for clear) |
|
| Mod!tts profanity <block|allow|status> | |
|
Usage:
Mod
!tts profanity block
(starts the filter)
Mod
!tts profanity allow
(stops the filter)
Mod
!tts profanity status
(shows the state, the language,
and the number of words)
Notes: The filter is off until you start it. It replaces rude words with milder words. It does not remove the message. The Banned Words list in the Web Dashboard removes a full message. The older on and off words still work: on is the same as block. Permission: Moderator |
|
| Mod!tts redeems <mute|unmute|list|all> | |
|
Usage:
Mod
!tts redeems mute <reward title>
(stops the announcements for one reward)
Mod
!tts redeems unmute <reward title>
(starts the announcements again)
Mod
!tts redeems list
(shows the muted rewards)
Mod
!tts redeems all
(shows all rewards on the channel)
Notes: The bot announces every reward until you mute it. Use this command for a reward that plays its own sound, for example a soundboard. You can type a part of the title. If more than one reward matches, the bot shows the names and asks for the full name. The reply always shows the name of the reward that changed. The bot cannot mute the TTS reward. This command works only when the broadcaster is signed in to the Web Dashboard. You can also select the rewards in the Web Dashboard, under Rewards to Announce. Permission: Moderator |
|
| Mod!tts readcommands <on|off> | |
|
Usage:
Mod
!tts readcommands off
(skips chat messages that start with "!")
Mod
!tts readcommands on
(reads them again)
Mod
!tts readcommands
(shows the current setting)
Notes: Other bots, for example Nightbot or StreamElements, use commands that start with "!", such as !lurk or !so. In All Messages mode, TTS reads these commands as chat. Switch this setting off to skip them. The setting does not change !tts: !tts still works. The setting has no effect in !tts Command Only mode or Bits/Points Only mode, because these modes never read these messages. A cheer that starts with "!" is still read, because the viewer paid for it. You can also change this in the Web Dashboard, under Read Chat Commands. Permission: Moderator |
|
Voices
The bot provides 472 voices across 45 languages from the MiniMax speech-2.8-turbo model. If the primary provider is unavailable, the bot falls back to speech-02-turbo. Use the voice_id in commands such as !tts voice <voice_id>.
Popular Voice IDs
Popular voices from the MiniMax speech-2.8-turbo model. To select a voice, use !tts voice <voice_id> in chat.
- Wise_Woman
- Friendly_Person
- Inspirational_girl
- Deep_Voice_Man
- Calm_Woman
- Casual_Guy
- Lively_Girl
- Patient_Man
- Young_Knight
- Determined_Man
- Lovely_Girl
- Decent_Boy
- Imposing_Manner
- Elegant_Man
- Abbess
- Sweet_Girl_2
- Exuberant_Girl
- English_FriendlyPerson
- English_CaptivatingStoryteller
- English_Wiselady
- English_Deep-VoicedGentleman
- English_ConfidentWoman
- English_Comedian
- English_Jovialman
- English_Kind-heartedGirl
Complete Voice List (from Wavespeed AI minimax/speech-02-turbo Schema — fallback provider)
This list contains all 472 available voices organized by language prefix.
Select to expand complete voice list (472 voices across 45 languages)
English (93 voices)
- Wise_Woman
- Friendly_Person
- Inspirational_girl
- Deep_Voice_Man
- Calm_Woman
- Casual_Guy
- Lively_Girl
- Patient_Man
- Young_Knight
- Determined_Man
- Lovely_Girl
- Decent_Boy
- Imposing_Manner
- Elegant_Man
- Abbess
- Sweet_Girl_2
- Exuberant_Girl
- English_expressive_narrator
- English_radiant_girl
- English_magnetic_voiced_man
- English_compelling_lady1
- English_Aussie_Bloke
- English_captivating_female1
- English_Upbeat_Woman
- English_Trustworth_Man
- English_CalmWoman
- English_UpsetGirl
- English_Gentle-voiced_man
- English_Whispering_girl_v3
- English_Diligent_Man
- English_Graceful_Lady
- English_Husky_MetalHead
- English_ReservedYoungMan
- English_PlayfulGirl
- English_ManWithDeepVoice
- English_GentleTeacher
- English_MaturePartner
- English_FriendlyPerson
- English_MatureBoss
- English_Debator
- English_Abbess
- English_LovelyGirl
- English_Steadymentor
- English_Deep-VoicedGentleman
- English_DeterminedMan
- English_Wiselady
- English_CaptivatingStoryteller
- English_AttractiveGirl
- English_DecentYoungMan
- English_SentimentalLady
- English_ImposingManner
- English_SadTeen
- English_ThoughtfulMan
- English_PassionateWarrior
- English_DecentBoy
- English_WiseScholar
- English_Soft-spokenGirl
- English_SereneWoman
- English_ConfidentWoman
- English_PatientMan
- English_Comedian
- English_GorgeousLady
- English_BossyLeader
- English_LovelyLady
- English_Strong-WilledBoy
- English_Deep-tonedMan
- English_StressedLady
- English_AssertiveQueen
- English_AnimeCharacter
- English_Jovialman
- English_WhimsicalGirl
- English_CharmingQueen
- English_Kind-heartedGirl
- English_FriendlyNeighbor
- English_Sweet_Female_4
- English_Magnetic_Male_2
- English_Lively_Male_11
- English_Friendly_Female_3
- English_Steady_Female_1
- English_Lively_Male_10
- English_Magnetic_Male_12
- English_Steady_Female_5
- English_Insightful_Speaker
- English_patient_man_v1
- English_Persuasive_Man
- English_Explanatory_Man
- English_intellect_female_1
- English_energetic_male_1
- English_witty_female_1
- English_Lucky_Robot
- English_Cute_Girl
- English_Sharp_Commentator
- English_Honest_Man
Portuguese (81 voices)
- Portuguese_AnxiousMan
- Portuguese_Matureresearcher
- Portuguese_Optimisticyouth
- Portuguese_CuteElf
- Portuguese_EnergeticGirl
- Portuguese_FunnyGuy
- Portuguese_Nuttylady
- Portuguese_Deep-tonedMan
- Portuguese_SentimentalLady
- Portuguese_BossyLeader
- Portuguese_Wiselady
- Portuguese_Strong-WilledBoy
- Portuguese_Deep-VoicedGentleman
- Portuguese_UpsetGirl
- Portuguese_PassionateWarrior
- Portuguese_AnimeCharacter
- Portuguese_ConfidentWoman
- Portuguese_AngryMan
- Portuguese_CaptivatingStoryteller
- Portuguese_Godfather
- Portuguese_ReservedYoungMan
- Portuguese_SmartYoungGirl
- Portuguese_Kind-heartedGirl
- Portuguese_Pompouslady
- Portuguese_Grinch
- Portuguese_Debator
- Portuguese_SweetGirl
- Portuguese_AttractiveGirl
- Portuguese_ThoughtfulMan
- Portuguese_PlayfulGirl
- Portuguese_GorgeousLady
- Portuguese_LovelyLady
- Portuguese_SereneWoman
- Portuguese_SadTeen
- Portuguese_MaturePartner
- Portuguese_Comedian
- Portuguese_NaughtySchoolgirl
- Portuguese_Narrator
- Portuguese_ToughBoss
- Portuguese_Fussyhostess
- Portuguese_Dramatist
- Portuguese_Steadymentor
- Portuguese_Jovialman
- Portuguese_CharmingQueen
- Portuguese_SantaClaus
- Portuguese_Rudolph
- Portuguese_Arnold
- Portuguese_CharmingSanta
- Portuguese_Ghost
- Portuguese_HumorousElder
- Portuguese_CalmLeader
- Portuguese_GentleTeacher
- Portuguese_EnergeticBoy
- Portuguese_ReliableMan
- Portuguese_SereneElder
- Portuguese_GrimReaper
- Portuguese_AssertiveQueen
- Portuguese_WhimsicalGirl
- Portuguese_StressedLady
- Portuguese_FriendlyNeighbor
- Portuguese_CaringGirlfriend
- Portuguese_PowerfulSoldier
- Portuguese_FascinatingBoy
- Portuguese_RomanticHusband
- Portuguese_StrictBoss
- Portuguese_InspiringLady
- Portuguese_PlayfulSpirit
- Portuguese_ElegantGirl
- Portuguese_CompellingGirl
- Portuguese_PowerfulVeteran
- Portuguese_SensibleManager
- Portuguese_ThoughtfulLady
- Portuguese_TheatricalActor
- Portuguese_FragileBoy
- Portuguese_ChattyGirl
- Portuguese_Conscientiousinstructor
- Portuguese_RationalMan
- Portuguese_WiseScholar
- Portuguese_FrankLady
- Portuguese_DeterminedManager
- Portuguese_CharmingLady
Spanish (58 voices)
- Spanish_FriendlyNeighbor
- Spanish_FragileBoy
- Spanish_UpsetGirl
- Spanish_Soft-spokenGirl
- Spanish_CharmingQueen
- Spanish_Nuttylady
- Spanish_ElegantGirl
- Spanish_FascinatingBoy
- Spanish_FunnyGuy
- Spanish_PlayfulSpirit
- Spanish_TheatricalActor
- Spanish_SereneWoman
- Spanish_MaturePartner
- Spanish_CaptivatingStoryteller
- Spanish_Narrator
- Spanish_WiseScholar
- Spanish_Kind-heartedGirl
- Spanish_DeterminedManager
- Spanish_BossyLeader
- Spanish_ReservedYoungMan
- Spanish_ConfidentWoman
- Spanish_ThoughtfulMan
- Spanish_Strong-WilledBoy
- Spanish_SophisticatedLady
- Spanish_RationalMan
- Spanish_AnimeCharacter
- Spanish_Deep-tonedMan
- Spanish_Fussyhostess
- Spanish_SincereTeen
- Spanish_FrankLady
- Spanish_Comedian
- Spanish_Debator
- Spanish_ToughBoss
- Spanish_Wiselady
- Spanish_Steadymentor
- Spanish_Jovialman
- Spanish_SantaClaus
- Spanish_Rudolph
- Spanish_Intonategirl
- Spanish_Arnold
- Spanish_Ghost
- Spanish_HumorousElder
- Spanish_EnergeticBoy
- Spanish_WhimsicalGirl
- Spanish_StrictBoss
- Spanish_ReliableMan
- Spanish_SereneElder
- Spanish_AngryMan
- Spanish_AssertiveQueen
- Spanish_CaringGirlfriend
- Spanish_PowerfulSoldier
- Spanish_PassionateWarrior
- Spanish_ChattyGirl
- Spanish_RomanticHusband
- Spanish_CompellingGirl
- Spanish_PowerfulVeteran
- Spanish_SensibleManager
- Spanish_ThoughtfulLady
Korean (51 voices)
- Korean_PowerfulGirl
- Korean_BossyMan
- Korean_SweetGirl
- Korean_CheerfulBoyfriend
- Korean_EnchantingSister
- Korean_ShyGirl
- Korean_ReliableSister
- Korean_StrictBoss
- Korean_SassyGirl
- Korean_ChildhoodFriendGirl
- Korean_PlayboyCharmer
- Korean_ElegantPrincess
- Korean_BraveFemaleWarrior
- Korean_BraveYouth
- Korean_CalmLady
- Korean_EnthusiasticTeen
- Korean_SoothingLady
- Korean_IntellectualSenior
- Korean_LonelyWarrior
- Korean_MatureLady
- Korean_InnocentBoy
- Korean_CharmingSister
- Korean_AthleticStudent
- Korean_BraveAdventurer
- Korean_CalmGentleman
- Korean_WiseElf
- Korean_CheerfulCoolJunior
- Korean_DecisiveQueen
- Korean_ColdYoungMan
- Korean_MysteriousGirl
- Korean_QuirkyGirl
- Korean_ConsiderateSenior
- Korean_CheerfulLittleSister
- Korean_DominantMan
- Korean_AirheadedGirl
- Korean_ReliableYouth
- Korean_FriendlyBigSister
- Korean_GentleBoss
- Korean_ColdGirl
- Korean_HaughtyLady
- Korean_CharmingElderSister
- Korean_IntellectualMan
- Korean_CaringWoman
- Korean_WiseTeacher
- Korean_ConfidentBoss
- Korean_AthleticGirl
- Korean_PossessiveMan
- Korean_GentleWoman
- Korean_CockyGuy
- Korean_ThoughtfulWoman
- Korean_OptimisticYouth
Chinese (Mandarin) (32 voices)
- Chinese (Mandarin)_Reliable_Executive
- Chinese (Mandarin)_News_Anchor
- Chinese (Mandarin)_Unrestrained_Young_Man
- Chinese (Mandarin)_Mature_Woman
- Chinese (Mandarin)_Kind-hearted_Antie
- Chinese (Mandarin)_HK_Flight_Attendant
- Chinese (Mandarin)_Humorous_Elder
- Chinese (Mandarin)_Gentleman
- Chinese (Mandarin)_Warm_Bestie
- Chinese (Mandarin)_Stubborn_Friend
- Chinese (Mandarin)_Sweet_Lady
- Chinese (Mandarin)_Southern_Young_Man
- Chinese (Mandarin)_Wise_Women
- Chinese (Mandarin)_Gentle_Youth
- Chinese (Mandarin)_Warm_Girl
- Chinese (Mandarin)_Male_Announcer
- Chinese (Mandarin)_Kind-hearted_Elder
- Chinese (Mandarin)_Cute_Spirit
- Chinese (Mandarin)_Radio_Host
- Chinese (Mandarin)_Lyrical_Voice
- Chinese (Mandarin)_Straightforward_Boy
- Chinese (Mandarin)_Sincere_Adult
- Chinese (Mandarin)_Gentle_Senior
- Chinese (Mandarin)_Crisp_Girl
- Chinese (Mandarin)_Pure-hearted_Boy
- Chinese (Mandarin)_Soft_Girl
- Chinese (Mandarin)_IntellectualGirl
- Chinese (Mandarin)_Warm_HeartedGirl
- Chinese (Mandarin)_Laid_BackGirl
- Chinese (Mandarin)_ExplorativeGirl
- Chinese (Mandarin)_Warm-HeartedAunt
- Chinese (Mandarin)_BashfulGirl
Japanese (16 voices)
- Japanese_Whisper_Belle
- Japanese_IntellectualSenior
- Japanese_DecisivePrincess
- Japanese_LoyalKnight
- Japanese_DominantMan
- Japanese_SeriousCommander
- Japanese_ColdQueen
- Japanese_DependableWoman
- Japanese_GentleButler
- Japanese_KindLady
- Japanese_CalmLady
- Japanese_OptimisticYouth
- Japanese_GenerousIzakayaOwner
- Japanese_SportyStudent
- Japanese_InnocentBoy
- Japanese_GracefulMaiden
Cantonese (9 voices)
- Cantonese_ProfessionalHost(F)
- Cantonese_GentleLady
- Cantonese_ProfessionalHost(M)
- Cantonese_PlayfulMan
- Cantonese_CuteGirl
- Cantonese_KindWoman
- Cantonese_Narrator
- Cantonese_WiselProfessor
- Cantonese_IndifferentStaff
Indonesian (9 voices)
- Indonesian_SweetGirl
- Indonesian_ReservedYoungMan
- Indonesian_CharmingGirl
- Indonesian_CalmWoman
- Indonesian_ConfidentWoman
- Indonesian_CaringMan
- Indonesian_BossyLeader
- Indonesian_DeterminedBoy
- Indonesian_GentleGirl
Russian (8 voices)
- Russian_HandsomeChildhoodFriend
- Russian_BrightHeroine
- Russian_AmbitiousWoman
- Russian_ReliableMan
- Russian_CrazyQueen
- Russian_PessimisticGirl
- Russian_AttractiveGuy
- Russian_Bad-temperedBoy
French (8 voices)
- French_Male_Speech_New
- French_Female_News Anchor
- French_CasualMan
- French_MovieLeadFemale
- French_FemaleAnchor
- French_MaleNarrator
- French_Female Journalist
- French_Female_Speech_New
Italian (7 voices)
- Italian_BraveHeroine
- Italian_Narrator
- Italian_WanderingSorcerer
- Italian_DiligentLeader
- Italian_ReliableMan
- Italian_AthleticStudent
- Italian_ArrogantPrincess
Thai (6 voices)
- Thai_Optimistic_girl
- Thai_male_1_sample8
- Thai_Tender_Woman
- Thai_male_2_sample2
- Thai_female_1_sample1
- Thai_female_2_sample2
Polish (4 voices)
- Polish_male_1_sample4
- Polish_male_2_sample3
- Polish_female_1_sample1
- Polish_female_2_sample3
Romanian (4 voices)
- Romanian_male_1_sample2
- Romanian_male_2_sample1
- Romanian_female_1_sample4
- Romanian_female_2_sample1
Vietnamese (4 voices)
- Vietnamese_Serene_Man
- Vietnamese_female_4_v1
- Vietnamese_male_1_v2
- Vietnamese_kindhearted_girl
German (3 voices)
- German_FriendlyMan
- German_SweetLady
- German_PlayfulMan
Greek (3 voices)
- Greek_female_1_sample1
- greek_male_1a_v1
- Greek_female_2_sample3
Czech (3 voices)
- czech_male_1_v1
- czech_female_5_v7
- czech_female_2_v2
Finnish (3 voices)
- finnish_male_3_v1
- finnish_female_4_v1
- finnish_male_1_v2
Hindi (3 voices)
- hindi_male_1_v2
- hindi_female_2_v1
- hindi_female_1_v2
Malay (3 voices)
- Malay_male_1_v1
- Malay_female_1_v1
- Malay_female_2_v1
English (British Child) (2 voices)
- BritishChild_male_1_v1
- BritishChild_female_1_v1
English (Conversational) (3 voices)
- conversational_female_1_v1
- conversational_female_2_v1
- socialmedia_female_1_v1
English (Whisper) (2 voices)
- whisper_man
- whisper_woman_1
Afrikaans (2 voices)
- Afrikaans_male_1_v1
- Afrikaans_female_1_v1
Arabic (2 voices)
- Arabic_CalmWoman
- Arabic_FriendlyGuy
Bulgarian (2 voices)
- Bulgarian_male_2_v1
- Bulgarian_female_1_v1
Catalan (2 voices)
- Catalan_male_1_v1
- Catalan_female_1_v1
Croatian (2 voices)
- Croatian_male_1_v1
- Croatian_female_1_v1
Danish (2 voices)
- Danish_male_1_v1
- Danish_female_1_v1
Dutch (2 voices)
- Dutch_kindhearted_girl
- Dutch_bossy_leader
Filipino (2 voices)
- Filipino_male_1_v1
- Filipino_female_1_v1
Hebrew (2 voices)
- Hebrew_male_1_v1
- Hebrew_female_1_v1
Hungarian (2 voices)
- Hungarian_male_1_v1
- Hungarian_female_1_v1
Norwegian (2 voices)
- Norwegian_male_1_v1
- Norwegian_female_1_v1
Nynorsk (2 voices)
- Nynorsk_male_1_v1
- Nynorsk_female_1_v1
Persian (2 voices)
- Persian_male_1_v1
- Persian_female_1_v1
Slovak (2 voices)
- Slovak_male_1_v1
- Slovak_female_1_v1
Slovenian (2 voices)
- Slovenian_male_1_v1
- Slovenian_female_1_v2
Swedish (2 voices)
- Swedish_male_1_v1
- Swedish_female_1_v1
Tamil (2 voices)
- Tamil_male_1_v1
- Tamil_female_1_v1
Turkish (2 voices)
- Turkish_CalmWoman
- Turkish_Trustworthyman
Ukrainian (2 voices)
- Ukrainian_CalmWoman
- Ukrainian_WiseScholar
Special Characters (7 voices)
- angry_pirate_1
- massive_kind_troll
- movie_trailer_deep
- peace_and_ease
- Arrogant_Miss
- Robot_Armor
- hunyin_6
Special Effects (12 voices)
- moss_audio_6dc281eb-713c-11f0-a447-9613c873494c
- moss_audio_c12a59b9-7115-11f0-a447-9613c873494c
- moss_audio_076697ad-7144-11f0-a447-9613c873494c
- moss_audio_737a299c-734a-11f0-918f-4e0486034804
- moss_audio_19dbb103-7350-11f0-ad20-f2bc95e89150
- moss_audio_7c7e7ae2-7356-11f0-9540-7ef9b4b62566
- moss_audio_570551b1-735c-11f0-b236-0adeeecad052
- moss_audio_ad5baf92-735f-11f0-8263-fe5a2fe98ec8
- moss_audio_cedfd4d2-736d-11f0-99be-fe40dd2a5fe8
- moss_audio_a0d611da-737c-11f0-ad20-f2bc95e89150
- moss_audio_4f4172f4-737b-11f0-9540-7ef9b4b62566
- moss_audio_62ca20b0-7380-11f0-99be-fe40dd2a5fe8
Note: The bot uses MiniMax speech-2.8-turbo with automatic fallback to speech-02-turbo. The list includes 472 voices categorized by language prefix. The command !tts voices links to this section.
Language Boost
The language_boost feature improves pronunciation for specific languages and dialects. This setting helps in multilingual chats and non-English streams.
Set a personal language preference with !tts language <language_name>. Moderators can set a channel default with !tts defaultlanguage <language_name>.
Available Language Boost Options
The following values are accepted:
- auto
- Afrikaans
- Arabic
- Bulgarian
- Catalan
- Chinese
- Chinese,Yue
- Croatian
- Czech
- Danish
- Dutch
- English
- Filipino
- Finnish
- French
- German
- Greek
- Hebrew
- Hindi
- Hungarian
- Indonesian
- Italian
- Japanese
- Korean
- Malay
- Norwegian
- Nynorsk
- Persian
- Polish
- Portuguese
- Romanian
- Russian
- Slovak
- Slovenian
- Spanish
- Swedish
- Tamil
- Thai
- Turkish
- Ukrainian
- Vietnamese
The auto setting uses automatic language detection. For English chats, set English. Selecting a specific language improves pronunciation for that language.
Announcements and Chat Replies
The channel language also selects the language of the text that the bot writes. This text includes stream event announcements, emote descriptions, and chat replies to commands.
For example, a viewer subscribes to a Spanish channel. The bot then makes the announcement in Spanish.
A personal language from !tts language changes the voice for your own messages only. A personal language does not change the announcements, because the whole channel hears them. The auto setting names no language, so a channel on auto gets announcements in English.
Automatic Detection
WildcatTTS reads the language that your channel declares on Twitch. The bot then sets the channel default for you.
The bot changes this setting only for a channel that has no language of its own. Your own choice always stays. Twitch has some languages that the voice engine does not support. For these languages, the channel stays on auto.
Emote Descriptions
WildcatTTS uses Google Gemini AI to describe Twitch emotes in chat messages. Instead of reading the emote code (for example, "LUL"), TTS speaks a description such as "a person laughing." The bot caches descriptions permanently to prevent repeated AI requests.
How It Works
- When an emote appears for the first time, AI analyzes the emote image and creates a short description.
- The bot caches the description permanently after first generation.
- Later uses of the emote use the cached description instantly without new AI processing.
The AI writes each description in the language of the channel. The bot keeps a separate description for each language.
Managing Descriptions
Moderators can use !tts emote to view, regenerate, or set emote descriptions. See the Emote Description Management table for details.
Pronunciation Dictionary
Chat uses many short forms that TTS speaks one letter at a time. The pronunciation dictionary changes them into full words. For example, TTS speaks ngl as "not gonna lie" and glhf as "good luck have fun". WildcatTTS includes a built-in list of about 70 common short forms. You can also add your own entries.
How It Works
- The word is not case-sensitive. An entry for lfg also matches LFG.
- An entry must match a full word. An entry for fr does not change the word "friend".
- The dictionary does not change text inside a link.
- The dictionary changes each word one time. TTS does not scan replaced text for more entries.
- Some entries work in specific languages only. For example, the dictionary changes ty to "thank you" in English. In Polish, Czech, and Slovak, ty is a common word, so the dictionary keeps it.
Your Own Entries
Moderators can add entries with the !tts pronounce command or in the Web Dashboard. Custom entries are useful for channel names, game terms, and difficult words.
- Your entry replaces a built-in entry that has the same word.
- To stop a built-in entry, use !tts pronounce off <word>. To restore it, use !tts pronounce remove <word>.
- A channel can have a maximum of 100 entries.
- A new entry of your own works in all languages. An entry that replaces a built-in entry keeps the languages of that built-in entry.
How To Stop It
The dictionary is active for all channels by default. To turn it off, disable Expand Chat Acronyms in the Web Dashboard. TTS then speaks short forms letter by letter.
Profanity Filter
The profanity filter replaces rude words with milder words before TTS speaks them. For example, TTS speaks "what the fuck" as "what the freak". The filter is off until a moderator starts it.
How To Start It
Use !tts profanity block in chat, or set the "Profanity Filter" control to on in the Web Dashboard. Use !tts profanity allow to stop the filter again, and !tts profanity status to see the state, the language, and the number of words in the list. The older on and off words still work.
What It Does
- The filter replaces a rude word with a milder word. It does not remove the message, and it does not make a bleep sound.
- The filter replaces a slur with the word "slur". This replacement keeps the meaning of the slur out of the audio.
- The filter also applies to short forms from the pronunciation dictionary. When the filter is on, TTS speaks lfg as "let's freaking go".
- A word must match fully. The filter does not change the word "class".
Languages
The filter has word lists for all 40 languages that Language Boost supports. The filter uses the list for your channel language. If a viewer selects a different language for their own messages, the filter uses both lists. The filter always includes the English list, because the pronunciation dictionary is in English.
If your Language Boost is "Automatic", the filter uses the English list. The bot cannot identify the language of each message.
The English list is the largest. The lists for other languages are smaller. Slurs are in the English list only.
Banned Words
The Banned Words feature stops WildcatTTS from speaking unwanted messages. If a chat message contains a banned word or phrase, TTS skips the message completely. The bot does not generate audio for skipped messages.
How It Works
- Matching is not case-sensitive. If you ban "badword", TTS also catches "BadWord" and "BADWORD".
- TTS matches parts of words. If you ban "spam", TTS also skips messages that contain "spammer" or "spammy".
- You can ban multi-word phrases. For example, you can ban phrases such as "follow my link" or "free followers".
- TTS ignores the username in replies. If a reply mentions a user with a banned word in their name, TTS does not skip the message.
Stream Events and Redemptions
The bot handles events and chat messages differently when a message contains a banned word:
- Chat Messages: TTS skips the full message. No voice audio plays.
- Resubscriptions: The bot announces the resubscription, but omits the attached viewer message.
- Watch Streaks: The bot announces the streak count, but omits the attached viewer message.
- Channel Point Redemptions: The bot announces the reward redemption, but omits the custom text input.
- Custom Reward Policy: If a Channel Point reward has a content policy, the bot rejects redemptions that contain banned words.
How To Manage Banned Words
You can configure banned words in the Web Dashboard. Changes take effect immediately.
- Sign in to the Web Dashboard at tts.wildcat.chat with your Twitch account.
- Scroll to the Banned Words / Phrases card in the Ignored Users section.
- Type a word or phrase into the input field.
- Click Add, or press Enter on your keyboard.
- If you want to remove an entry, click Remove next to the word in the list.
YouTube Live Chat Integration
WildcatTTS can read YouTube Live chat messages aloud into your OBS audio feed. If you stream to Twitch and YouTube at the same time, the bot reads messages from both chats into one audio source.
How It Works
- Multi-streaming support: Messages from Twitch and YouTube play through the same OBS Browser Source without extra audio setup.
- Background polling: If you turn on the feature before you start your YouTube stream, the bot waits and connects when you go live.
- Heartbeat system: The bot sends regular heartbeat signals to keep the YouTube connection active during slow chat.
- Unified formatting: Custom YouTube emotes, URLs, and channel default voice settings apply to YouTube messages automatically.
How To Enable YouTube TTS
You can configure YouTube TTS in the Web Dashboard. Changes take effect immediately.
- Sign in to the Web Dashboard at tts.wildcat.chat with your Twitch account.
- Scroll to the YouTube Integration card.
- Turn on the YouTube TTS Enabled switch.
- Enter your YouTube handle (for example, @yourchannel).
- If your stream is already live, OBS begins speaking your YouTube chat messages immediately.
Speech-Friendly URL Reading
Chat messages often contain long web links with parameters and tracking codes. WildcatTTS simplifies links so they sound natural when spoken.
How It Works
- By default, TTS replaces links with speech-friendly domain names. For example, TTS speaks a search link as "google dot com link".
- TTS removes protocol prefixes such as "https://" and "www." before speaking the domain name.
- TTS replaces hyphens, underscores, and dots with spaces and words so the domain sounds natural.
Read Full URLs Option
If you want TTS to speak entire URLs as typed, turn on the Read Full URLs switch in the Web Dashboard. When this switch is on, TTS speaks the full link without shortening.
Chat Commands from Other Bots
Many channels run a second bot, for example Nightbot or StreamElements. Viewers control it with commands that start with "!", such as !lurk, !so or !sr. In All Messages mode, WildcatTTS reads these commands aloud as chat.
Read Chat Commands Option
To skip these messages, switch off Read Chat Commands in the Web Dashboard, or type !tts readcommands off in chat. TTS then ignores every chat message that starts with "!".
- !tts is not affected. !tts <text> is still spoken, and the other !tts commands still work.
- The option applies only in All Messages mode. The other two modes never read these messages.
- A cheer whose message starts with "!" is still read, because the viewer paid for it.
Stream Events & Privacy Controls
WildcatTTS gives you granular control over stream event announcements and viewer privacy in the Web Dashboard.
Cheer Announcements & Cheermote Filtering
When a viewer cheers bits, TTS automatically strips cheermote names like Cheer100 or Party1 from the message. TTS only reads the viewer's custom message.
Both switches are in the Cheers card of the Web Dashboard. Announce Cheers turns the "User cheered bits" alert on or off. Read Cheer Messages turns reading the attached message on or off. Cheer messages are read in every TTS mode and are not limited by TTS Permission, because the viewer paid for them.
Reward Announcements & Queued Redeems
When a viewer redeems a channel point reward, TTS speaks an alert with the reward title and the viewer message.
Use the Announce Reward Redeems switch in the Web Dashboard to turn redemption alerts on or off.
To keep one reward silent, for example a soundboard that plays its own sound, use Rewards to Announce in the Web Dashboard. Select Choose rewards and switch off the reward. The bot announces all other rewards. Moderators can use the !tts redeems mute command in chat.
By default, the bot announces a queued reward immediately when a viewer redeems it. Switch off Announce Queued Redeems Immediately to announce a queued reward only after you accept it in Twitch.
Follower Privacy & Anonymization
To protect viewer privacy, turn on the Anonymize New Followers switch in the Web Dashboard. When active, TTS announces "Someone new just followed!" instead of speaking the viewer's username.
Watch Streaks & Pronoun Resolution
When a viewer hits a watch streak milestone, the bot announces the streak count. If the viewer attached a message, the bot checks pronouns.alejo.io to speak their pronouns (for example, "They said: ...").
Web Dashboard
The WildcatTTS Web Dashboard lets broadcasters configure all TTS settings. Sign in with your Twitch account to access the dashboard.
Available Dashboard Settings
- Engine Control: Turn TTS on or off, announce stream events, and set TTS mode and permissions.
- Viewer Preferences: Allow viewer custom voices, or force the channel default voice for all messages.
- Allow Viewer Voice Preferences: Allow viewers to choose custom voices with !myvoice, or lock TTS to the channel default voice.
- Bot Responds in Chat: Turn chat text replies on or off while keeping TTS voice audio active.
- Page Language: Select the language of the dashboard text. The selector is at the top of the page. This selector does not change the voice or the announcements.
- Anonymize New Followers: Announce new followers without speaking usernames for viewer privacy.
- Announce Cheers: Turn cheer alerts on or off while continuing to read cheer messages.
- Announce Reward Redeems: Turn channel point reward redemption alerts on or off.
- Rewards to Announce: Select the rewards that the bot announces. Switch off a reward that plays its own sound.
- Announce Queued Redeems Immediately: Announce queued channel point rewards immediately without waiting for approval.
- Read Full URLs: Read full web links or only domain names.
- Read Chat Commands: Read or skip chat messages that start with "!" in All Messages mode. !tts always works.
- Cheers: Announce cheers, read the message attached to a cheer, and set the minimum Bits a cheer needs.
- Channel Points → TTS: Create and configure a custom Channel Point reward for TTS.
- YouTube Integration: Enable YouTube Live chat TTS and set your YouTube handle or stream URL.
- Ignored Users: Manage the TTS ignore list, banned words, and pronunciation dictionary.
- Banned Words / Phrases: Block specific words or phrases so TTS skips matching messages.
- Default Voice Settings: Set channel defaults for voice, volume, emotion, pitch, speed, language, and text normalization.
- Voice Calibration: Set volume multipliers for individual voices to balance audio levels.
- OBS Browser Source Setup: Get your secure OBS browser source URL and setup instructions.
- Voice Preview: Test your voice settings before you go live.
Voice Calibration
Some voices are naturally louder or quieter than other voices. Voice Calibration lets you set volume multipliers for individual voices to balance audio levels.
- Per-Voice Volume: Select a voice and assign a volume multiplier (0.1x to 10.0x). (Caution: Values over 1.0 can be loud)
- Auto-Apply: When a viewer selects a calibrated voice, the bot applies the custom volume automatically.
- Overrides: Calibrated voice volumes override the channel default volume setting.
OBS Browser Source Setup
Step 1: Add Browser Source in OBS
- In OBS, click the "+" icon under Sources
- Select "Browser"
- Name the source (for example, "WildcatTTS")
- Configure the source:
- URL: Paste your unique TTS URL from the dashboard
- Width/Height: Set 300x100 (size does not affect audio)
- ✓ Control audio via OBS (must be checked)
- Uncheck "Shutdown source when not visible" so audio plays consistently
Step 2: Enable Audio Monitoring
- Locate the audio mixer in OBS (bottom panel)
- Click the gear (⚙️) next to "WildcatTTS" → "Advanced Audio Properties"
- Set "Audio Monitoring" to:
- Monitor and Output - You and your stream hear the audio
- Monitor Only - Only you hear the audio (for testing)
Important: Make sure that the source is unmuted in your audio mixer and the volume is set appropriately.
Troubleshooting
- Bot not responding to commands? Make sure that the bot is a moderator in your channel. Type /mod WildcatTTS in your Twitch chat. The bot requires moderator permissions to read messages and send replies.
- Bot not speaking? Make sure that TTS is enabled with !tts on in chat. Also check the active mode with !tts mode and permissions with !tts permission.
- Bot not speaking in a specific language, or reading numbers in Chinese? Set Language Boost to your language with !tts language <language_name> (or !tts defaultlanguage <language_name> for the channel). Show the active setting with !tts defaultlanguage.
- TTS generation taking too long or failing? The bot uses 302.ai with automatic fallback to Wavespeed AI. If audio delays occur, use !tts stop to cancel stuck generation. The bot retries failed requests automatically.
- Emotion not working? The auto emotion is not supported. Use neutral, happy, sad, angry, fearful, disgusted, or surprised.
- Need help? Contact the developer through the contact form at Henry's portfolio website.