~/projects/ttsbot

SOFTWARE2026

ttsbot

A Discord bot that stays connected in a voice channel, reads a text channel aloud with text-to-speech, and tracks how long members spend in voice calls.

TIMELINE
Jul 2026 – Oct 2026
TEAM
Solo
CONTEXT
Personal project
Diagram of text messages flowing through a TTS engine into an always-connected voice channel, above a voice-time leaderboard.
54selectable text-to-speech voices

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.