This works if you are me or have a fair bit of know-how.
libdave.dll, opus.dll, libopus.dll, libsodium.dll — see NetCord: Installing Native DependenciesApp.config.example to App.configBotToken — your Discord bot tokenSteamUser / SteamPass — Steam credentials (required for Steam→Discord TTS bridge)dotnet build
dotnet run
!tts link <steamid> [voice] [rate] — Link Steam account to Discord!tts unlink — Unlink Steam account!tts verify — Check current link status!tts join [channel_id] — Join voice channel (auto-detects if no ID provided)!tts leave — Leave voice channel!tts say <message> — Send a TTS message directly from Discord!tts changevoice <voice> — Change TTS voice!tts changerate <-10 to 10> — Change speech rate (10 is fastest)!tts changeserver — Change server!tts voices — List all available voices!tts uploadvoice <name> [options] — Upload a custom PocketTTS voice (attach .wav/.mp3/.safetensors)
--truncate --lsd-decode-steps <n> --temperature <f> --noise-clamp <f> --eos-threshold <f> --frames-after-eos <n>!tts renamevoice <old> <new> — Rename a custom PocketTTS voice!tts deletevoice <name> — Delete a custom PocketTTS voice!tts customvoices — List custom PocketTTS voices!tts destination <discord|mumble|both> — Change where TTS audio is sent!tts mumblestatus — Show Mumble connection status!tts help — Show helpAll commands are also available as slash commands (e.g., /link, /join, /changevoice, /say, etc.)
CoQui (e.g., CoQui_female_1, CoQui_male_1)Pocket (e.g., Pocket_alba, Pocket_marius)Audio can be routed to discord (default), mumble, or both using !tts destination.
C#
100.0%
This works if you are me or have a fair bit of know-how.
libdave.dll, opus.dll, libopus.dll, libsodium.dll — see NetCord: Installing Native DependenciesApp.config.example to App.configBotToken — your Discord bot tokenSteamUser / SteamPass — Steam credentials (required for Steam→Discord TTS bridge)dotnet build
dotnet run
!tts link <steamid> [voice] [rate] — Link Steam account to Discord!tts unlink — Unlink Steam account!tts verify — Check current link status!tts join [channel_id] — Join voice channel (auto-detects if no ID provided)!tts leave — Leave voice channel!tts say <message> — Send a TTS message directly from Discord!tts changevoice <voice> — Change TTS voice!tts changerate <-10 to 10> — Change speech rate (10 is fastest)!tts changeserver — Change server!tts voices — List all available voices!tts uploadvoice <name> [options] — Upload a custom PocketTTS voice (attach .wav/.mp3/.safetensors)
--truncate --lsd-decode-steps <n> --temperature <f> --noise-clamp <f> --eos-threshold <f> --frames-after-eos <n>!tts renamevoice <old> <new> — Rename a custom PocketTTS voice!tts deletevoice <name> — Delete a custom PocketTTS voice!tts customvoices — List custom PocketTTS voices!tts destination <discord|mumble|both> — Change where TTS audio is sent!tts mumblestatus — Show Mumble connection status!tts help — Show helpAll commands are also available as slash commands (e.g., /link, /join, /changevoice, /say, etc.)
CoQui (e.g., CoQui_female_1, CoQui_male_1)Pocket (e.g., Pocket_alba, Pocket_marius)Audio can be routed to discord (default), mumble, or both using !tts destination.
C#
100.0%