Set Up TTS (Text-to-Speech)
TTS is the engine that reads donation messages aloud during your stream. The app supports 4 providers:
| Provider | Cost | Quality | API key? |
|---|---|---|---|
| Web Speech API | Free | Basic (uses your OS / browser voices) | No |
| Google Cloud TTS | Per-character | High (Chirp3-HD) | Yes |
| OpenAI TTS | Per-character | High (natural-sounding) | Yes |
| Gemini TTS | Per-token | High (30 voices + style prompt) | Yes |
What you'll need
- A decision on which provider you want to use as your primary
- An API key, if you picked a paid provider
- Speakers/headphones to listen to the preview
Step 1 — (For paid providers) enter your API key first
API keys live in the Connections tab, not the TTS tab.
- Go to Settings → Connections
- Find the row for the provider you'll use: Google Cloud TTS, OpenAI, or Gemini
- Paste the API key into the matching field
- Click Save
If you're only using Web Speech API — skip this step.
Step 2 — Pick your Primary Provider
- Go to Settings → TTS Voice tab
- In the Provider section, pick your primary provider
- The voice / config options below change to match the selected provider
Step 3 — Configure Voice / Speed / Pitch
Per provider:
- Web Speech — pick from the voices your OS has installed (Thai voices show up if you have the language pack installed)
- Google Cloud TTS — pick a voice like
th-TH-Chirp3-HD-Despina, tweak speakingRate (0.25–4.0) and pitch - OpenAI TTS — pick a model (
tts-1/tts-1-hd), a voice (alloy / ash / coral / echo / fable / nova / onyx / sage / shimmer), and speed - Gemini TTS — pick one of 30 voices (each with a descriptor: Bright, Upbeat, Firm…) + a style prompt like "speak cheerfully"
Step 4 — Test it with Preview
Every provider has a Preview button:
- Type a sample message (e.g. "Hi there, thanks for the donation!")
- Click Preview / ▶ Listen
- Listen — adjust voice / speed / pitch if it's not what you want
:::tip You can also test from the Test Panel
The Test Panel (/test) has its own TTS Preview field — handy if you don't want to bounce back to Settings.
:::
Step 5 — Set a Fallback Provider
The fallback provider kicks in automatically if the primary fails (e.g. quota exhausted, API down). If the fallback also fails, the app falls back to Web Speech as a last resort.
- In the same section, find Fallback Provider
- We recommend Web Speech (free, always available) — especially if your primary is a paid provider
Step 6 — (Optional) set Min Donation / Max Length
Scroll further down the TTS tab:
- ttsMinDonation — minimum amount that triggers TTS (e.g. ฿5+) — donations under this are skipped
- ttsMaxMessageLength — caps message length (chars) — anything longer gets truncated
Tips & Troubleshooting
- Web Speech has no Thai voice: install the Thai language pack in Windows Settings → Time & Language → Speech
- Google TTS error 403: check that Cloud Text-to-Speech API is enabled in Cloud Console and the API key isn't expired
- OpenAI burning credits: try switching to
tts-1(cheaper thantts-1-hd) or enable the min donation filter - Gemini Auto-Tone: a special mode just for Gemini — see the Gemini Auto-Tone guide
:::tip Audio Cache Mor9an caches generated TTS audio for 24 hours — repeated messages don't burn through your API quota. :::