Repolode
ekwek1

ekwek1/soprano

Soprano is an ultra-lightweight, on-device text-to-speech model with CUDA, CPU and MPS support and streaming output.

Stars
1,618
Forks
138
Open issues
19
Last commit
9 months ago

What is it?

Soprano is a text-to-speech model built around a compact 80M-parameter architecture, aimed at fast, high-fidelity English speech synthesis on consumer hardware. It generates 32kHz audio, supports streaming with low latency on both CPU and GPU, and splits long input text automatically so output length is not capped.

The project ships several ways to run it: a WebUI, a CLI, an OpenAI-compatible speech endpoint served with uvicorn, and a Python API with batched and streaming inference. It runs on CUDA, CPU and Apple MPS across Windows, Linux and Mac, with an optional lmdeploy backend for NVIDIA GPUs. Community ONNX and ComfyUI integrations are linked from the project.

Soprano currently supports English only and does not offer voice cloning. It was trained on about 1,000 hours of audio, so uncommon words may be mispronounced. Fine-tuning is handled by the separate Soprano-Factory project.

Key features

  • 01Generates 32kHz speech on CPU, CUDA and Apple MPS devices.
  • 02Streams audio with low latency and splits long text automatically.
  • 03Offers a WebUI, a CLI, a Python API and an OpenAI-compatible speech endpoint.
  • 04Supports batched inference for processing many sentences at once.
  • 05Runs with under 1 GB of memory using an 80M-parameter model.

Use cases

  • Adding local English voice output to a desktop or edge application without a cloud API.
  • Serving an OpenAI-style speech endpoint for an internal app.
  • Generating narration or voice-over audio in batches.
  • Building ComfyUI workflows that include speech generation.

Quick start

  1. 1

    Install the package (CPU/MPS)

    pip install soprano-tts
  2. 2

    Start the web interface

    soprano-webui

Things to know

  • English-only; multilingual support is still on the roadmap.
  • Does not support voice cloning.
  • Trained on only about 1,000 hours of audio, so uncommon words may be mispronounced.
  • Windows CUDA users must manually reinstall a CUDA build of PyTorch.

Topics

FAQ

What is soprano?
Soprano is an ultra-lightweight, on-device text-to-speech model with CUDA, CPU and MPS support and streaming output. Soprano is a text-to-speech model built around a compact 80M-parameter architecture, aimed at fast, high-fidelity English speech synthesis on consumer hardware. It generates 32kHz audio, supports streaming with low latency on both CPU and GPU, and splits long input text automatically so output length is not capped.
Is soprano free to use? What license does it have?
soprano is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is soprano still maintained?
No commits for 6+ months. The last commit to soprano was on Jan 15, 2026.
What can I use soprano for?
Adding local English voice output to a desktop or edge application without a cloud API. Serving an OpenAI-style speech endpoint for an internal app. Generating narration or voice-over audio in batches. Building ComfyUI workflows that include speech generation.
How do I install soprano?
Install the package (CPU/MPS): pip install soprano-tts Start the web interface: soprano-webui
Where can I get soprano?
The source code and installation instructions are on GitHub: https://github.com/ekwek1/soprano

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects