Skip to main content
This is a premium feature. Upgrade your plan to access it.
Text-to-speech lets the bot convert written messages into natural-sounding audio. BrewBot uses ElevenLabs to generate speech, and supports expressive audio tags that add emotion, reactions, and vocal variety to the output.

Voice models

BrewBot supports two ElevenLabs voice models:
ModelDescription
Multilingual v2Stable, general-purpose model. Works well for straightforward speech. This is the default.
v3Newer model with support for expressive audio tags. Choose this if you want emotional delivery and sound effects.
Audio tags only work with the v3 voice model. If you use the Multilingual v2 model, tags are ignored or read aloud as plain text.

Configure TTS

1

Open the dashboard

Go to the BrewBot Dashboard and select your server.
2

Navigate to TTS settings

Open the TTS or voice settings section for the feature you want to configure.
3

Enable TTS

Toggle TTS on. Choose who can trigger TTS messages — moderators only, whitelisted members, or everyone.
4

Pick a voice

Select a voice from the available ElevenLabs voices. Each voice has a different tone and style.
5

Select a voice model

Choose v3 if you want audio tag support, or stick with Multilingual v2 for standard speech.

How TTS works

When a member sends a TTS-eligible message, the bot:
  1. Detects the TTS trigger (a // prefix for chat TTS).
  2. Extracts the spoken text from the message.
  3. Sends the text to ElevenLabs with the configured voice and model.
  4. Plays the generated audio.
For example, typing // Hello everyone, welcome to the stream! produces a spoken greeting in the selected voice.

Audio tags

Audio tags are short markers you embed in your text to control how the voice sounds. Wrap each tag in square brackets and place it where you want the effect to occur.
// [excited] We just hit a new record! [laughs] I can't believe it!

Emotional tone

Use these tags to set the mood of the delivery:
TagEffect
[excited]Upbeat, enthusiastic delivery
[nervous]Hesitant, anxious tone
[frustrated]Annoyed, impatient delivery
[tired]Low-energy, fatigued tone
[sarcastic]Dry, ironic delivery
[curious]Inquisitive, wondering tone
[mischievously]Playful, scheming delivery

Reactions

Simulate physical and vocal reactions:
TagEffect
[laughs]Short laugh
[laughs harder]Extended, intense laughter
[starts laughing]Laughter that builds in
[wheezing]Breathless laughter
[gasp]Sharp intake of breath
[sighs]Audible sigh
[exhales]Breath release
[crying]Tearful, emotional delivery
[snorts]Nasal laugh or scoff
[gulps]Nervous swallow

Volume and energy

Control how loud or quiet the voice is:
TagEffect
[whispers]Soft, hushed delivery
[whispering]Sustained quiet tone
[shouting]Loud, projected delivery
[quietly]Subdued, low-volume speech
[loudly]Raised-voice delivery

Pacing and rhythm

Adjust the speed and flow of speech:
TagEffect
[pauses]Brief silence for dramatic effect
[stammers]Halting, uncertain speech
[rushed]Fast, hurried delivery

Sound effects

Add non-speech audio cues:
TagEffect
[applause]Clapping audience
[clapping]Rhythmic clapping

Special

TagEffect
[sings]Melodic, sung delivery
[woo]Celebratory exclamation

Layering tags

Tags can be combined in a single message to create nuanced delivery. Place each tag inline where you want the effect to happen:
// [nervously] I... I'm not sure this is going to work. [gulps] But let's try anyway.
// [whispering] Did you hear that? [pauses] [loudly] It's coming from over there!
// [excited] We won! [laughs harder] I told you we could do it! [applause]
Start with one or two tags per message and build from there. Overloading a message with too many tags can make the output sound unnatural.

Add the TTS overlay to your stream

Chat TTS plays audio through a browser source overlay that you add to your streaming software (OBS, Streamlabs, etc.). The overlay connects to BrewBot, picks up queued TTS messages, and plays them on stream in real time.
1

Copy the overlay URL

In the dashboard, go to your TTS settings and copy the overlay URL. It looks like this:
https://brewbot.techbrew.dev/overlay/speed-dating/{serverId}/chat-tts?token={your-token}
Each server gets a unique secure token. Do not share this URL publicly — anyone with the link can connect to your TTS feed.
2

Add a browser source in OBS

In OBS (or your streaming software), add a new Browser Source:
  1. Click + in the Sources panel.
  2. Select Browser.
  3. Name it something like Chat TTS.
  4. Paste the overlay URL into the URL field.
  5. Set the width and height to any value (the overlay is invisible — it only plays audio).
  6. Make sure Control audio via OBS is unchecked so the audio plays through your stream.
3

Test the overlay

Send a test TTS message (or use the manual announcement feature in the dashboard) to confirm audio plays through your stream.
If you regenerate your overlay token in the dashboard, the old URL stops working. Update the browser source URL in OBS with the new token.
The overlay automatically reconnects if the connection drops. If it stays disconnected for more than a few seconds, check that your overlay URL and token are correct.

Manual announcements

You can send TTS announcements directly from the dashboard without waiting for a chat message. Type your announcement text (up to 300 characters) and it is queued and played through the overlay just like a regular TTS message. This is useful for shoutouts, alerts, or any spoken message you want to trigger on demand.

Audience controls

You can control who is allowed to send TTS messages:
SettingDescription
Moderators onlyOnly server moderators can trigger TTS. This is the default.
Whitelisted membersOnly members you add to the whitelist can trigger TTS.
MVPsMembers marked as MVPs gain TTS access (when enabled).
EveryoneAny member can trigger TTS.
Whitelisted members and MVPs always have TTS access regardless of the audience setting.