Voice Over
- nothing is read out loud
- viewers do not hear the voice on stream
- the voice sounds robotic
- how do I make it read chat messages
- long donation messages get cut off
- the bot says a viewer subscribed when the subscription was a gift
- fifty gifted subs flooded the voice queue
Installed separately, as part of the Voice Over bundle: this module does not come with the app installer. Open Module Catalog → Add-ons and press Install on the Voice Over card, and the bundle installs all of its modules at once.
What this page is
Voice → Voice Over reads donations, chat and bot replies out loud. The line under the title says where the sound comes from: "Synthesis runs on this machine — no internet, no limits".
How to set it up
The page has three tabs — What to speak, Rules, Sound in OBS — and one Save button at the top right for all of them.
The voice itself is not on this page. Which voice reads what, the voice pack, speed, volume and the queue limit live on Voice → Voices, because the app speaks with more than this module: scenarios and the assistant use the same mouth. See the Voices article. The queue itself, with Skip and Stop, is the Voice over: Queue tile on the control panel.
What to speak
Everything is off on a fresh install, and the app stays silent until you switch something on and press Save. That is the step people miss: the voices download, Listen speaks, and the stream still hears nothing, because nothing has been switched on yet. The switches are stored by Save like everything else — the only exception is Which sources count under Donations, whose checkboxes take effect on their own.
Five blocks, each with a switch. Under the name of the block it says Reads out loud or Off, and a block that is off hides its own settings.
- Donations — Minimum amount: "Compared in your base currency, so a donation in another currency is judged correctly. Zero reads every donation." Template starts as "{user} donated {amount} {currency}[ and says: {message}]" and takes
{user},{amount},{currency},{message}. Square brackets mark an optional part: it disappears when every variable inside it is empty, so a donation without a message is read as "Alex donated 5 dollars", with no "and says" hanging at the end. The brackets work the same in every template on the page. Which sources count is a checkbox per installed donation connector; these take effect without Save. When Alerts shows the donation, it is read after the alert sound rather than on top of it, and the next alert waits until the line is finished. Currency codes are read as names: "100 RUB" becomes "100 rubles". - Chat — Read is either On command only or Every message ("Every message turns into noise on a busy chat — that mode is for small streams"), and Command holds the command itself,
!ttsby default. The command works in both modes: it is a request to read something out, so "Every message" does not swallow it, and in both modes only the text after the command is read. Pause between lines is in seconds, 3 by default, counted per viewer. Template starts as "{user} says: {message}". - What the bot writes in chat — five separate switches: AI agent answers, Answers to chat commands, Timers, Scenario messages, Stream announcements. Separate because the choices differ: answers to commands can stay text while the assistant speaks, or the other way round. What you type in the chat tile yourself is never read — with one exception, the voice-over command above, which is a request rather than a remark.
- Channel point rewards — the message a viewer typed together with the reward, read with its own template rather than as ordinary chat. Template starts as "{user} redeemed {reward}[ and says: {message}]" and takes
{user},{reward},{message}. Which rewards to read starts with Every reward with a message; untick it to pick rewards one by one, and the list can be sorted by cost or by name. Nothing ticked means nothing is read. Twitch's own purchases — Highlight My Message and Send a Message in Sub-Only Mode — are in the list too, marked as built-in. - Subscriptions — Subscription template starts as "{user} subscribed for {duration}[: {message}]" and takes
{user},{duration},{months},{tier},{message}; Gifted subs template starts as "{user} gifted {gifts}" and takes{user},{gifts},{count},{tier}.{duration}and{gifts}carry the number together with the word in the right form ("1 month", "5 months", "1 subscription"), so a single gift is no longer read as "1 subscriptions". A template still on the old default switches to the new one by itself; a template you wrote yourself stays as it is. The person who received a gifted subscription is a separate case, and off by default: Read out gift recipients too. A gift of fifty subscriptions is fifty lines in a second, and the gift itself has already been announced by the line above. Recipient lines also count as subscriptions, and subscriptions are never dropped from the queue. With this on, a gift of fifty is read to the end, fifty lines in a row; a donation that arrives meanwhile waits behind them, and while the queue is over its limit, new chat lines and bot replies are dropped. Switch it on and each recipient gets Gift recipient template — "{user} got a gifted subscription from {gifter}" — instead of the subscription line, which would have claimed they subscribed themselves. Where the platform does not name the giver — an anonymous gift, or YouTube, which hides it inside its own announcement —{gifter}becomes "someone".
Rules
- Length — Length limit in characters, 300 by default ("Characters. Zero means no limit"), and When it is too long: Trim it or Skip the whole message. The limit applies to chat and channel point rewards only: donations and subscriptions are always read in full.
- Filters — Cut links out, on by default: "Otherwise a viewer pays to have the bot read a website address into your stream." Blocked words, one per line: "A message containing any of these is not spoken at all. Whole words, not parts of them." Blocked viewers, one nickname per line.
- Queue — the queue limit moved to Voice → Voices, because the queue is now shared by everything the app says, not by this module alone.
Sound in OBS
The tab is the instruction itself, under How to get the voice on stream: "In OBS: Sources → + → Application Audio Capture, and pick strAImer in the window list", then "Set the volume in the app: Settings → Sound, slider Voice (TTS)", then "Press Listen next to any role on the Voice → Voices screen and watch the source meter in the OBS mixer". One source covers everything the app plays — voice, alerts and scenario sounds go through it.
The second section, The voice overlay is no longer needed, asks you to delete the browser source of the voice overlay: it no longer plays anything, because "OBS puts a browser source to sleep in silence and loses the beginning of the audio, which is why playback moved into the app". The last section, If it stays silent, lists the three things to look at: the capture source in the OBS mixer, the volume in Settings → Sound, and the state strip at the top of this page.
The tab describes the usual path, where the app plays the voice itself. If OBS runs on a second PC, or your OBS has no Application Audio Capture, switch Where the sound plays on Settings → Sound to In an OBS browser source: the voice then plays in that browser source instead of the app. Only the neural voices travel that way; the Windows system voice stays in the app, and viewers do not hear it. The steps are in the guide "Sound".
What it cannot do
- There is no voice, speed or volume here. All three are on Voice → Voices, for everything the app says: Voice is Neural, System or Off, then a voice per role, Speed and Volume. Under System the Windows voice reads everything, and the voice picked for a role does not apply.
- The voice pack on that page arrives as a single download. Individual voices or languages cannot be installed separately, and Remove takes the whole thing away.
- The queue is not shown line by line and cannot be reordered — the strip gives the count, and the only two actions are Skip and Stop and clear.
- Every message reads what viewers say, not other commands. A chat line starting with an exclamation mark is sorted as a command the moment it arrives from Twitch, YouTube or Kick, and commands such as
!clipor!auctionare never read in this mode. The one exception is the command written in Command: it is read in both modes, without the command word in front. - Which sources count exists only under Donations. Chat, bot replies and subscriptions have no source filter of their own.
- Whether the assistant says its answers to your voice out loud is not decided here: that is Read answers out loud on Chat Bot → Voice control. This page only decides whether its answers in chat are read, with the AI agent answers switch above.
- This page has no link for OBS. The old voice overlay plays nothing; the browser source for a second PC is a different one, and its address is copied on Settings → Sound.