A fast VC TTS bot
  • Kotlin 99.3%
  • Dockerfile 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-07 17:52:44 -04:00
.idea doc: improve readme and comments 2026-08-07 17:52:44 -04:00
gradle/wrapper gradle time 2026-06-29 15:56:04 -04:00
src/main doc: improve readme and comments 2026-08-07 17:52:44 -04:00
.gitignore feat: other important features 2026-04-09 16:50:48 -04:00
build.gradle.kts doc: improve readme and comments 2026-08-07 17:52:44 -04:00
Dockerfile im a bit dumb 2026-07-13 12:15:04 -04:00
gradle.properties feat(fix): emoji support, added missing edge cases, skip command, tone indicators, and better performance overall 2026-04-29 22:55:40 -04:00
gradlew feat: initial commit 2026-04-09 11:31:31 -04:00
gradlew.bat feat: initial commit 2026-04-09 11:31:31 -04:00
LICENSE feat: other important features 2026-04-09 16:50:48 -04:00
README.md doc: improve readme and comments 2026-08-07 17:52:44 -04:00
settings.gradle.kts feat: initial commit 2026-04-09 11:31:31 -04:00

Speech and Spell

Now spell... PAUL

A custom-made TTS bot because the others felt too slow. Add me today!

Features

  • Clear speech
  • Announces images and embeds
  • DecTalk syntax support
  • Open source (duh)
  • Pretty quick
    • Averages ~250ms warm to ~600ms cold
  • Customizable prefixes and nicknames
  • Message edit support
  • Announces reactions
  • Reads emojis, tone indicators, abbreviations, and won't read URLs
  • Admin skip and clear commands

Motivation

I personally don't like to use my mic when in voice channels in discord, usually resorting to no mic or the voice chat text channel.

Some cool people have made TTS bots that announce out the messages from the channels so that people with "no mic" don't get ignored. However, the particular one I was using in a server was so slow that it was unbearable.

So, with help from a friend (who already have a speech synthesis API set up) I made this bot out of spite of the other one.

Building

Note

Requires Java 25!

Run ./gradlew build and pray

Deploying

Create a .env file in the root of your working directory with the following contents:

BOT_TOKEN=<your token here>
API_URL=<your api>
DATABASE=h2
# optional if you are using postgres
POSTGRES_PORT=5432
POSTGRES_USER=<username>
POSTGRES_PASSWORD=<password>

Next, run the .jar resulting from the ./gradlew build

$ java -jar SpeechAndSpell-1.0.0-all.jar

Optionally: supply extra ram with JVM parameters (-Xms256m -Xmx2048m should be more than enough!)

Optionally: use the included dockerfile for almost complete setup (with exception of .env)