Supertonic 3 voices: where to get custom voices and how to use them
Supertonic 3 is a small open text-to-speech model that runs on an ordinary computer. It comes with ten preset voices, and every other voice for it is a single small file that you add yourself. Once you have that file, speech in any of the model's 31 languages is generated offline, on your own CPU or GPU.
This guide explains what a Supertonic 3 voice is, where custom voices come from now that the original Supertonic project is archived, and how to use a voice with the official code, with the SuperClonica engine and with Docker. SuperClonica sells and trains such voices, so we say where something is ours.
What a Supertonic 3 voice is
A Supertonic 3 voice is a voice style: a JSON file of about 0.3 MB that holds two small sets of numbers. One shapes the timbre and manner of speech, the other the timing. The model itself, about 385 MB of ONNX files, is the same for every voice and is downloaded once.
Because the voice is separate from the model, switching voices costs nothing: the same installation speaks with any voice file you pass to it. A voice also works in every language the model supports, from English, Spanish and German to Russian, Japanese, Korean, Arabic and Hindi. It sounds most natural in the language of the recording it was made from. Chinese is not among the 31 languages.
Where to get Supertonic 3 voices
The ten preset voices, M1 to M5 and F1 to F5, come with the model. For anything else there are a few sources.
- Free voices on GitHub: the superclonica/supertonic-voices repository has free voice files with audio samples in nine languages.
- The SuperClonica catalog: 170+ voices, including game and cartoon characters, narrators, male, female and child voices. Every voice page has demos and lets you voice your own short phrase online for free; free voices download without an account, and paid ones are bought once.
- A voice made to order: on the commissions page you describe the voice and attach a recording, and an author trains it for you.
- Your own voice: SuperClonica trains a voice from a short clean recording for free on your own NVIDIA GPU, with our worker program.
- Voice Builder, Supertone's former service for custom voices, is not part of the archived project, so new voices can no longer be made there.
Use a voice with the official Supertonic code
The archived Supertonic repository still works. Clone it, create a Python 3.11 virtual environment, install huggingface_hub and download the model into the assets folder with hf download supertone-oss-archive/supertonic-3 --local-dir assets (the project's quick start pins the exact revision). Then install the packages from py/requirements.txt.
To speak with a custom voice, run the example script from the py folder and pass the voice file: python example_onnx.py --voice-style ./voice.json --text "Your text here" --lang en --n-test 1. The WAV file appears in the results folder. For another language, change --lang, for example to de or ja.
Use a voice with the SuperClonica engine
SuperClonica is our engine built on Supertonic 3. It reads the same voice files without conversion, is on average 61% faster on a CPU and 73% faster on a graphics card in our measurements, removes the model's hiss between words and speaks numbers as words.
Install one package: python -m pip install superclonica-cpu, or superclonica-gpu-cuda for an NVIDIA GPU. In Python, create the engine once and call tts.synthesize("Hello!", voice="voice.json", lang="en", seed=7), then tts.save("hello.wav", audio). From the command line: superclonica --text "Hello!" --voice voice.json --lang en --output hello.wav. The base model downloads on the first run.
Use a voice in Docker
The superclonica/superclonica image on Docker Hub runs the engine as an HTTP server: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu, or the cuda tag with --gpus all on an NVIDIA GPU.
A request to POST /synthesize carries the text, the language and the voice: the content of the voice JSON goes into the request itself. Since a voice is about 0.3 MB, build the request in a file and send it with curl -d @request.json. The answer is a 16-bit WAV.
Tips for good results
A few habits make a voice sound its best.
- Pass the language of the text, not of the voice: a Russian voice reads English text with lang=en.
- Fix a seed when you like a take: the same text, voice and seed give the same audio again.
- Write numbers, dates and abbreviations the way they should sound if you use the official code; the SuperClonica engine spells numbers out by itself.
- Split long texts into paragraphs. The SuperClonica engine does this automatically and voices long texts in short pieces, which keeps words from being repeated or cut off.
- Listen to the demos before you buy: a voice keeps the character of its recording, including its accent.
Voices of real people and the rules of the model
Some catalog voices are inspired by well-known people. They are not their real voices, and the people did not take part in them, so do not present such audio as their real words.
Supertonic 3 is released under the BigScience Open RAIL-M license, and its use restrictions apply to every voice: do not use speech to impersonate someone without consent, to deceive or to harass, and say that the audio is machine-generated where that matters.