# supertonic

> Offline text-to-speech in 31 languages that runs on your own device via ONNX

- Repository: https://github.com/supertone-oss-archive/supertonic
- Category: Image, video & audio
- Stars: 13,767 · Forks: 1,563 · Language: Swift · License: MIT
- Experience: Some experience
- Page: https://ir.adyog.com/repos/supertone-oss-archive/supertonic/

Supertonic turns text into speech on your own machine. It uses ONNX Runtime, so there are no cloud calls and no API keys. The model has 99 million parameters, which is small for a TTS system, so downloads are modest and it starts quickly. It needs no GPU.

You download the model files (ONNX models, config and preset voice styles) from Hugging Face, then run an example in your language of choice. The repo has examples for Python, Node.js, browser (WebGPU), Java, C++, C#, Go, Swift, iOS, Rust and Flutter. Output is 44.1kHz 16-bit WAV audio. It supports 31 languages, and you can pass lang="na" when you don't know the input language.

The README compares it with larger open TTS models such as VoxCPM2, OmniVoice and Qwen3-TTS, and reports competitive error rates on the Minimax-MLS-test benchmark. Those numbers are the authors' own. The repo is archived: the authors say there will be no updates, fixes or support, and the hosted demos and Voice Builder service are not part of it.

## What it does

- **Fully on-device synthesis**: Runs through ONNX Runtime on desktop, mobile, browsers and small hardware like a Raspberry Pi. After the one-time model download, no network is needed.
- **31 languages**: Covers languages from Arabic and Hindi to Finnish and Vietnamese. Passing lang="na" lets it handle text without a known language tag.
- **Expression tags**: Ten inline tags such as <laugh>, <breath> and <sigh> add human touches to the speech without reference audio.
- **Many runtime examples**: Ready-made examples for Python, Node.js, browser, Java, C++, C#, Go, Swift, iOS, Rust and Flutter.
- **44.1kHz WAV output**: Writes 16-bit WAV files directly, and supports batch inference for higher throughput.

## What you could build

- Add offline voice read-aloud to a mobile or desktop app.
- Convert web pages or documents into audio without sending text to a cloud service.
- Run speech synthesis on a Raspberry Pi or an e-reader.
- Generate multilingual narration for videos or prototypes from a script.
- Study how to run an ONNX speech model from several programming languages.

## Who it's for

Developers who want local TTS and are comfortable with a command line and Python or another supported language; note it is archived, so expect no fixes.

## Get started

Clone the repo, make a Python 3.11 virtual environment and install huggingface_hub. Download the pinned Supertonic 3 model into assets/, install the Python requirements, then run the example to produce a WAV file in py/results/.

```
git clone https://github.com/supertone-oss-archive/supertonic.git
```
```
hf download supertone-oss-archive/supertonic-3 \
  --revision aafc6e32416a594460b32413efc49d7fe4ce6d46 \
  --local-dir assets
```
```
python example_onnx.py --n-test 1 --text "This speech was generated locally with the archived Supertonic model." --lang en
```

Tags: tts, onnx, on-device, multilingual, speech-synthesis
