michalwarda/qudio

Rust

0

6 commits

updated Feb 5, 2026

See the code

README

Qudio

ElevenLabs-compatible text-to-speech API backed by qwen3-tts-rs.

Prerequisites

  • Rust (stable)
  • ffmpeg (in PATH or set QUDIO_FFMPEG_PATH)
  • PostgreSQL (local or via Docker)
  • Qwen3-TTS model files downloaded locally

Quick Start

  1. Start PostgreSQL (Docker example):
docker compose up -d
  1. Set environment variables:
export DATABASE_URL="postgres://qudio:qudio@localhost:5432/qudio_dev"
export QUDIO_MODEL_DIR="/path/to/qwen3-tts-model"
export QUDIO_BIND_ADDR="0.0.0.0:3000"  # optional
export QUDIO_FFMPEG_PATH="ffmpeg"       # optional
  1. Run the server:
cargo run

Example Request

curl -X POST "http://localhost:3000/v1/text-to-speech/default?output_format=wav_24000" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello world"}' \
  --output out.wav

API Docs

  • Swagger UI: http://localhost:3000/docs
  • OpenAPI JSON: http://localhost:3000/openapi.json

Tests

Make sure the test database is running, then:

TEST_DATABASE_URL="postgres://qudio:qudio@localhost:5433/qudio_test" cargo test

Contributors

michalwarda

6 commits

michalwarda/qudio

Rust

0

6 commits

updated Feb 5, 2026

See the code

README

Qudio

ElevenLabs-compatible text-to-speech API backed by qwen3-tts-rs.

Prerequisites

  • Rust (stable)
  • ffmpeg (in PATH or set QUDIO_FFMPEG_PATH)
  • PostgreSQL (local or via Docker)
  • Qwen3-TTS model files downloaded locally

Quick Start

  1. Start PostgreSQL (Docker example):
docker compose up -d
  1. Set environment variables:
export DATABASE_URL="postgres://qudio:qudio@localhost:5432/qudio_dev"
export QUDIO_MODEL_DIR="/path/to/qwen3-tts-model"
export QUDIO_BIND_ADDR="0.0.0.0:3000"  # optional
export QUDIO_FFMPEG_PATH="ffmpeg"       # optional
  1. Run the server:
cargo run

Example Request

curl -X POST "http://localhost:3000/v1/text-to-speech/default?output_format=wav_24000" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello world"}' \
  --output out.wav

API Docs

  • Swagger UI: http://localhost:3000/docs
  • OpenAPI JSON: http://localhost:3000/openapi.json

Tests

Make sure the test database is running, then:

TEST_DATABASE_URL="postgres://qudio:qudio@localhost:5433/qudio_test" cargo test

Contributors

michalwarda

6 commits

Languages

Rust

100.0%