DECTalk TTS Server

A standalone HTTP server that turns text into speech using authentic DECTalk (the Moonbase Alpha voice). It exposes both a simple GET endpoint and a MiniMax-compatible POST endpoint, so it can be used directly or as a drop-in TTS backend.

This service was extracted from the ttstoy Discord bot cog so it can run on its own as a system service, independent of the bot.

Requirements

  • Node.js (v16 or newer recommended)
  • ffmpeg (used to encode output to mp3)
  • npm dependencies: express, dectalk (installed via npm install)

Install ffmpeg on Debian/Ubuntu:

sudo apt install ffmpeg

Running

./start.sh

start.sh runs npm install on first launch and then starts the server. The listening port defaults to 33001 and can be overridden with the PORT environment variable.

You can also run it directly:

npm install
PORT=33001 node server.js

API

GET /say

Generate speech and return an mp3.

GET /say?text=Hello%20world

Response: audio/mpeg (mp3 bytes).

Voice is controlled inline using DECTalk voice commands (see below).

POST /v1/t2a_v2

MiniMax-compatible endpoint. Accepts JSON { "text": "..." } and returns a JSON body with the audio encoded as hex under data.audio.

curl -X POST http://127.0.0.1:33001/v1/t2a_v2 \
  -H 'Content-Type: application/json' \
  -d '{"text":"Hello from DECTalk"}'

GET /voices

Returns the list of available DECTalk voices and their inline command codes.

GET /engine

Returns engine type and version metadata.

GET /health

Returns { "status": "ok" }.

Voice commands

Voices are selected inline by prefixing the text with a command code:

Voice Command Description
Paul [:np] Perfect Paul (default)
Betty [:nb] Beautiful Betty
Harry [:nh] Huge Harry (deep male)
Frank [:nf] Frail Frank (elderly)
Dennis [:nd] Doctor Dennis
Kit [:nk] Kit the Kid (child)
Ursula [:nu] Uppity Ursula
Rita [:nr] Rough Rita
Wendy [:nw] Whispering Wendy (soft)

Example:

GET /say?text=[:nh]This is Huge Harry speaking.

Running as a system service

A systemd unit file is provided (dectalk-tts-server.service). See INSTALL.md for setup steps.

S
Description
Standalone DECTalk TTS HTTP server (extracted from the ttstoy Discord bot cog)
Readme 42 KiB
Languages
JavaScript 78.2%
Shell 21.8%