Text-to-Speech (TTS)
Convert chat messages into natural AI speech in Discord voice channels with zero setup. Supports live chat reading, media detection, smart speaker tracking, and dual voices.
Overview
Flantic's Text-to-Speech (TTS) engine brings natural neural voices into your Discord voice channels. Whether members don't have microphones or want hands-free channel reading, Flantic reads chat messages seamlessly with zero configuration.
TTS is driven completely by text commands (`?tts`). No web dashboard setup or complex permissions required.
Commands
?tts joinConnect to your voice channel and speak all chat messages in the current text channel automatically.
?tts stopStop the bot from speaking and clear the speech queue while remaining in the voice channel.
?tts leaveDisconnect the bot from the voice channel and unbind the live chat session.
?tts <message>Directly speak a one-off text message in your voice channel.
?tts voiceView the server's current TTS voice.
Aliases: ?tts config
?tts voice <female|male>Switch the server's TTS voice between female (Jenny) and male (Guy). Requires Manage Server.
Aliases: ?tts config <female|male>
Live channel reading
Join any voice channel and run `?tts join` in the text channel you want read aloud. Flantic connects to your voice channel and binds to that text channel. From then on, every text message sent in that channel is automatically spoken into the voice channel.
- 1Join any Discord voice channel on the server.
- 2Go to your preferred chat channel and type `?tts join`.
- 3Flantic connects to your VC and confirms the bound text channel.
- 4Anyone can type in that chat channel, and Flantic will speak the messages out loud.
- 5Use `?tts stop` to stop audio and clear the queue without leaving, or `?tts leave` to disconnect completely.
If Flantic is already in the voice channel (for instance, after a one-off `?tts hello`), typing `?tts join` seamlessly binds the text channel without error.
Smart speaker attribution
To keep conversation natural and avoid annoyance, Flantic uses smart speaker tracking:
- New Speaker: When a different user speaks, Flantic announces their name: 'Alex says, hello everyone'.
- Consecutive Messages: When the same user sends follow-up messages in a row, the name prefix is omitted ('what are you playing today?') so it doesn't repeat 'Alex says' on every sentence.
- Media Reset: When a media item or emoji is sent, consecutive tracking resets so the subsequent message re-announces who is speaking.
Media announcements & emojis
Flantic detects when chat contains non-text content and announces it intelligently:
- GIFs: Links from Klipy (`https://klipy.com/gifs...`), Tenor, Giphy, or direct `.gif` URLs announce '<User> sent a gif'.
- Custom Emojis: Discord server custom emojis (`<:name:id>` / `<a:name:id>`) announce '<User> sent an emoji'.
- Classic Emojis: Standard Unicode emojis (😂, 😭, 👍) are read natively by the speech engine (e.g. 'laughing', 'crying').
- Images & Videos: Uploaded images, videos, or attachments announce '<User> sent an image' (with captions if provided).
- Links: Standalone URLs announce '<User> sent a link'.
Voices & persistence
- Female Voice (Default): High-fidelity Microsoft Edge Neural voice (en-US Jenny).
- Male Voice: High-fidelity Microsoft Edge Neural voice (en-US Guy).
- Switch Voice: Server managers can switch voices anytime using `?tts voice female` or `?tts voice male`.
- 30-Minute Inactivity Persistence: When idle, Flantic stays in the voice channel for up to 30 minutes before leaving, so you don't have to repeatedly re-invite the bot during pauses.
Safety & permissions
- Safety limits: Messages are capped at 300 characters to prevent channel spam.
- Sanitization: User mentions (@user), channel mentions (#channel), and raw URLs are stripped or replaced with safe spoken tokens.
- Bot permissions: Flantic requires Send Messages, Embed Links, Connect, and Speak in the voice channel.
- Mod control: Changing server voices requires Manage Server permission. Anyone in the voice channel (or moderators) can use `?tts leave`.