Landmark DocsDashboard →

On stream

Text to speech

Landmark can read messages out loud on your stream. That includes chat, tips, alerts, and anything one of your elements wants to say. You choose who gets read, on which platforms, in which voice, and whether it is free or costs money. Free voices cost nothing. Lifelike AI voices cost money, and the cost goes to you.

Where it reads

Every read goes through one line and plays from one audio source. These are the things that can trigger a read:

Chat
Reads chat messages as they come in. This is on by default for everyone, on every platform you connect, using the free Brian voice. Nothing plays until a playback source is open. See Playback.
Tips and events
Reads the message attached to a tip, a cheer, a sub, a gift, a raid, or a channel-point redeem. You can set it to read only above an amount you choose.
Alerts
Reads a fixed line when an event happens, like {user} just subscribed. This goes through the same line as any other read.
Elements
Any element you build can call landmark.tts(text) to say something out loud, like when a goal is hit. It is billed the same way. See the element API.
Your tip page
If you turn it on, people who tip can pick a voice to read their message in. Their pick is used for that one read.

Free voices and AI voices

There are two kinds of voices. The difference is cost.

Standard voices
Brian and about a dozen classic voices like Amy, Emma, Joey, and Joanna. Usually free. A big monthly allowance covers normal use, then fractions of a cent per character. A new account starts on Brian.
AI voices
Lifelike, natural voices. Plus the Tomodachi and DECtalk engines that run on Landmark hardware. Every character an AI voice reads is billed to you as usage. There is no per-message cap, so more chat means more cost. Picking an AI voice is a choice you make on purpose. The settings page warns you whenever your default is an AI voice.
Novelty voices
Fun robot and game-style voices made right in your browser. Animalese, Sans, Blip, Morse. These never cost money.

Viewers can never pick an AI voice. AI voices are only used where you set them, in alerts and paid reads. So a viewer can never run up your AI bill by chatting.

Hear the voices

Each clip below says the same line, welcome to the stream, so you can compare them. Press play.

Animalese
0:00 / 0:00
welcome to the stream
Chirpy, one chime per letter. Free, made in the browser.
Sans
0:00 / 0:00
welcome to the stream
One deep blip per syllable. Free, made in the browser.
Tomodachi
0:00 / 0:00
welcome to the stream
A Mii-style sing-song voice. Gold only. Bills as usage per read.
DECtalk
0:00 / 0:00
this is the dectalk robot voice
The classic 1980s robot voice. Bills as usage per read.

Change pitch and speed with a command

Some voices read a short command at the start of a message and use it to change how they sound. The command is removed before the words are read. Put it in square brackets, then a space, then your message:

[p70,s40] hello everyone

Each setting is one letter and a number. You can leave any of them out.

p pitch, 0 to 100
Higher is squeakier. Works on Tomodachi and Animalese.
s speed, 0 to 100
How fast it talks. Works on Tomodachi and Animalese.
q quality, 0 to 100
Clearer or rougher. Tomodachi only.
t tone, 0 to 100
Brighter or darker. Tomodachi only.
a accent, 0 to 100
How strong the bounce in the voice is. Tomodachi only.
i intonation, 1 to 4
The up-and-down pattern. Tomodachi only.
v voice, 1 to 8
One of eight ready-made Tomodachi mixes. Any letter you add on top wins.

Commands to copy and try

Paste any of these straight into chat (on a voice that supports commands) to hear the effect. Each line is the full message, command and all. Swap the words for your own.

High and fast
[p85,s70] hello chat, i am wide awake
Low and slow
[p15,s30] greetings... from the deep
Squeaky chipmunk
[p100,s80] this is fine, everything is fine
Dark and bright tone (Tomodachi)
[p25,t20] a low rumble and [p70,t90] a bright chime
Pick a Tomodachi preset
[v3] try voice three through [v8] try voice eight
Preset plus a tweak
[v5,p80] preset five but squeakier

Only Tomodachi and Animalese read the p/s commands. Tomodachi reads them all. On any other voice the brackets get read out loud, so only use a command on a voice that supports it.

Here is the same line in Tomodachi with two different commands:

[p85,s60] welcome to the stream
0:00 / 0:00
welcome to the stream
High pitch, a bit faster.
[p20,t30] welcome to the stream
0:00 / 0:00
welcome to the stream
Low pitch, dark tone.

Only Tomodachi and Animalese read these commands. On any other voice the brackets get read out loud, so only use a command with a voice that supports it. DECtalk has its own commands, shown below.

Make Tomodachi sing

Tomodachi can sing a tune. Start your message with [sing], then write each word with the note it lands on. A note is a letter from A to G, an optional #, and an octave number, like C4 or G3. Add :2 to hold a note longer.

[sing bpm150] ma{E4} ry{D4} had{C4} a{D4} lit{E4} tle{E4} lamb{E4:2}
Tomodachi singing
0:00 / 0:00
The notes above: "Mary had a little lamb". bpm sets the speed.

The DECtalk robot voice

DECtalk reads your text exactly as you type it, so its own 1980s commands work inside a message. These use a colon, like [:, so they do not clash with the [p70] commands above. A few useful ones:

Pick a speaker
[:np] Paul, [:nb] Betty, [:nh] Harry, plus Frank, Dennis, Kit, Ursula, Rita, and Wendy.
Set the speed
[:rate 200] sets words per minute. About 120 to 250 works well.
Sing
In [:phoneme arpa speak on] mode you can give each sound a length and a note, like [m eh<400,29>]. Note 13 is C3, and each step up is one half step, so C4 is 25 and G4 is 32.
DECtalk singing
0:00 / 0:00
[:phoneme arpa speak on][m eh<400,29>][r iy<400,27>]… the start of "Mary had a little lamb".

Your public voice page

Every channel has a page where viewers can see the voices they can use and hear how their message sounds. Share this link:

landmark.stream/@yourhandle/tts

On that page a viewer can read the guide, play each free voice, build a command with sliders, and, if you allow it, set the voice their own messages read in. To test playback there, a viewer needs to be signed in and have a payment method on file. The free voices still cost them nothing. That gate just keeps the page from being used by bots.

Let viewers pick their own voice

You can let viewers choose the voice their own messages read in. Set who can on the Voices page under Viewers pick own voice: Off, Anyone, or Subs only. These commands work in chat even without the chatbot:

!setvoice <name>
Sets a voice for that viewer. The command is not read out loud.
!setvoice off
Goes back to your default voice. none, clear, and reset also work.
!clearvoice
Also clears their voice.

Viewers can only pick standard and novelty voices (Brian and the other classics, plus the browser-made voices). If a viewer types the name of a billed AI voice. Including Tomodachi and DECtalk. Nothing happens. Those stay yours.

Pin a voice to one viewer

You can also set a fixed voice for a specific person. A pinned voice always wins over your rules and your default. Set one three ways:

  • Click a chatter in the dock chat window and choose a voice.
  • Add one by username on the Voices page or the dock TTS settings. You can limit it to one platform.
  • The viewer sets their own with the chat command above, if you allow it.

Viewers cloning their own voice

Turn on Allow voice cloning in TTS settings and set a clone price. A viewer can then clone their own voice from your public voice page (/@yourhandle/tts): they upload a few samples, confirm it is their voice, and pay your one-time price. Their messages then read in their cloned voice. Every read bills the viewer per character from their own wallet, never you. If their wallet runs out, they fall back to the free default voice.

You can clone your own voice the same way from the Voice library with + Clone a voice. Your own clones bill like any AI voice.

Rules decide what gets read

Rules are a list, read from top to bottom. The first rule that matches a message wins. The trigger cards on the settings page are the simple view of this. The full builder is under Advanced, where you can reorder rules and the page warns you when a rule is covered by one above it.

Each rule is: who plus a trigger plus platforms, then free or paid and a voice.

Who
everyone, subscribers, mods, VIPs, followers, or a list of specific people.
Trigger
A chat message, the !tts command, bits or cheers, a sub or resub, a tip, a gift, a channel-point redeem, a raid, or a specific alert.
Amount
For bits, tips, and raids you can match by amount: at or above a number, between two numbers, or an exact value. A raid uses the number of viewers.
Platforms
Twitch, YouTube, Kick, Rumble, TikTok, or all of them.
Free or paid
Free, or paid with a flat price per message that you set, like $0.50.
Voice
Any voice, or leave it on the default. Picking an AI voice shows that it bills you.
Fixed line
An optional line that is read instead of the viewer message. Good for raids, subs, and alerts where there is no message. It can use tags like {user}, {amount}, {months}, {tier}, and {viewers}.

Voice order: a pinned voice wins first, then the matched rule voice, then your default voice (Brian until you change it). A voice picked on the tip page is used for that tip.

Block words you do not want read

Reads go through the same filters no matter where they came from. There is a Test a message box on the settings page that runs the real pipeline so you can see what would happen.

Category filters

Turn whole groups on or off. Each one is a word list, with the words hidden behind a button.

Slurs
Racial, ethnic, homophobic, transphobic, and ableist terms. On by default.
Sexual
Nudity, sex acts, and fetish terms. On by default.
Swears
Common swearing and crude insults. Off by default.
Violence
Gore, killing, and self-harm. Off by default.

For each group you can set a replacement word. Leave it blank to skip the whole message, or type a word to swap the bad one so the rest still reads. A sound-alike check catches spaced-out and leetspeak versions too.

Your own words and cleanup

Word swaps
Swap any word for another, remove a word, or block the whole message.
Strip links
Removes web links before reading.
Calm down caps
Reads shouting as normal text.
Squash repeats
Collapses spammed repeated letters.
Skip commands
Skips messages that start with !, /, or $. On by default.
Strip glitch text
Removes the hidden characters in glitch text. Leave this on. One glitch message can burn a lot of usage.

Emotes are never read. An emote-only message reads nothing. Common chat bots are muted by default, on top of anyone you block.

Playback and pacing

Reads wait in one line and play from one audio source. You have three places to play them:

A separate browser source
A playback page you add to OBS as its own browser source.
Through your alerts overlay
Turn on Play TTS through my alerts overlay and your alerts overlay plays the audio too. No extra source needed.
In the dock
Turn on Play here on the dock TTS tab to hear reads through the control dock.

Chat reads only join the line while a playback source is open, so chat does not pile up while you are away. Tips, bits, subs, raids, and redeems always join the line. Those are never dropped.

Set the pace under Advanced on the settings page:

Allow overlap
Off reads one at a time. On lets a read start before the last one ends.
Gap between reads
A pause between one read and the next.
Per-viewer cooldown
A wait between one viewer's reads.
Shortest message
Skip chat messages shorter than this. Does not apply to tips and events.
Longest line
The most reads that can wait at once. In a raid, the oldest free chat reads are dropped first so the newest chat keeps reading. Paid reads are never dropped.
Longest message
The most characters per read. Longer messages are cut before they are read.
Name announce
Whether to say the viewer name first: just the message, name: message, or name said: message.

You can pause the whole line from the dock at any time. Paused reads are kept and play when you unpause. There is also an option to read every message in a language you choose.

Where to set it up

Dashboard, Text to speech
Settings: the main switch, trigger cards, alert reads, your default voice, who can pick a voice, and under Advanced the chat reading, pacing, rules, and filters.
Dashboard, Voices
Voices: browse and tune voices, build commands with sliders, and manage pinned viewer voices.
Control dock, TTS tab
The dock mirrors the live controls: pick the chat voice, pin a chatter by clicking them, pause or resume the line, and play audio in the dock.

Open Text to speech →

Last updated · June 28, 2026