Overview
ttsbot is a Discord bot that remains connected to a designated voice channel around the clock, reads a text channel aloud using text-to-speech, and keeps a leaderboard of how much time each member spends in voice calls.
Features
- Stays connected to voice with no auto-disconnect, so voice-time tracking is continuous across restarts
- Reads a designated text channel aloud into the voice call
- Two selectable text-to-speech engines: a fast CPU-based set of named voices, or GPU-based voice cloning from a short sample
- Per-user custom voice selection
- All-time and per-call voice-time leaderboards
- Admin controls for configuring tracked channels
- Milestone celebrations at voice-time thresholds
- Dockerized deployment pipeline to a remote ARM64 server
How it works
The bot manages its own voice-channel connection and playback queue so it never drops out, banking in-progress voice time even across a graceful restart. Text-to-speech runs through one of two interchangeable engines — an ONNX-based model for fast named voices, or a GPU model for per-user voice cloning from a short audio sample — with voice time and settings persisted to SQLite. It deploys as a Docker container to a remote server via a scripted pipeline.
