// voice + music
Voice & music
kesarAI can join a voice channel for two things: reading text aloud with text-to-speech, and playing music. Both run through the same voice connection — the bot holds one slot per server — and both are tuned per user on kesarai.ch while a server admin keeps final say over what’s allowed.
Overview
Voice features are off until an admin enables them on the voice dashboard. Once enabled, any member who is sitting in a voice channel can trigger TTS or queue music; the bot follows the member who runs the command into their current channel. When nobody’s using it, the bot disconnects on its own — TTS leaves after about 60 seconds of silence, and the music player leaves after five minutes of an empty queue or an empty channel.
Personal preferences live on your account pages and the server’s defaults live on the dashboard. Where the two disagree, the server can choose to force its settings over yours (see per-user vs server settings).
Text-to-speech
/ai ttsmakes the bot join your current voice channel and speak the text you give it aloud, using Google Cloud TTS. You have to be in a voice channel when you run it — that’s how the bot knows where to speak. After it finishes, the bot stays for about 60 seconds of silence and then leaves on its own.
- Each call costs 1 point from your AI quota. Studio voices are premium and cost roughly 10× that.
- You pick a preferred voice on your account page; if you don’t pass a voice to the command, that saved default is used.
- A server admin can lock a single default voice for everyone, which overrides individual preferences.
- Text is run through the same content filter as
/say, so banned words are censored before the bot speaks them.
Toggle your personal TTS access and choose your voice at /account/voice.
Music playback
Music lives under one /musiccommand group. Join a voice channel first, then queue a track by name or by pasting a URL. The bot posts a compact “now playing” reply and links to the web player for full queue control.
/music play— search by name or paste a URL, then queue it and start playback./music pause— toggle pause and resume./music skip— skip to the next track in the queue./music queue— show the current track and the next few in line./music join— bring the bot into your current voice channel without queuing anything./music stop— clear the queue and disconnect.
If the bot ever gets stuck in a channel, /leavevc force-disconnects it.
Sources
The player resolves queries from four kinds of source. A bare search term is treated as a YouTube search; a pasted URL is routed by its domain.
- YouTube— videos, and playlists that expand into multiple queued tracks.
- SoundCloud— track and playlist links.
- Spotify— track, album, and playlist links, resolved to a matching audio stream under the hood.
- Internet radio— direct HTTP stream URLs, the most reliable source.
An admin chooses which of these sources are allowed on the server. A query that points at a disabled source is refused with a note to ask an admin.
Per-user vs server settings
Audio is configured at two levels. Each member can save their own volume, equaliser, and filter presets; these apply to the tracks they queue. The server holds its own defaults — a DJ role, a default volume, the allowed sources list, and a 24/7 stay-in-channel option that keeps the bot connected.
By default a member’s preferences win for their own tracks. When the server turns on force server audio, the server’s settings override every member’s personal audio instead.
Set your personal volume and EQ at /account/music.
Command reference
Text-to-speech
/ai tts— speak text in your voice channel.
Music
/music play,/music pause,/music skip,/music queue,/music join,/music stop./leavevc— force the bot to disconnect from voice.
Voice features must be enabled server-side on the voice dashboard before any of these commands will work.