Local speech recognition & synthesis

Generate Korean speech on CPU with Supertonic 3

Provide text, Korean code `ko`, and an included preset to generate a WAV.

Supertonic 3 is an on-device TTS1 system for 31 languages. Its public ONNX assets run on a CPU2, and the included M1–M5 and F1–F5 voice presets can synthesize Korean into a WAV. Custom voice styles use a separate Voice Builder service path.

Requirements and key details
  • Pass --lang ko for Korean text and generate a WAV with the ONNX model.
  • Choose one of M1–M5 or F1–F5 with --voice-style.
  • Bundled presets and the custom voice-style service follow separate paths.

Start CPU synthesis from the archived public model

Supertonic 3 is a multilingual TTS system that takes text and a language code to create speech. Its public model files run with ONNX Runtime3; set Korean to ko and a bundled voice preset to save a WAV. The model card lists 31 languages, including Korean, English, and Japanese. Supertonic 3 model card

The public repository was archived on September 9, 2026, and code changes and support have stopped. The steps below download the archived repository at its current revision and a pinned revision of the model assets.

An open book, a small computer, and a speaker on a desk
Choose the text and voice preset before synthesizing.

Prepare the pinned model files

You need Python 3.11 and Git. The commands below are for macOS and Linux terminals; code comes from the archived default branch, while the model-file revision is pinned.

Set up the repository and model assets
git clone https://github.com/supertone-oss-archive/supertonic.git
cd supertonic
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install huggingface_hub
hf download supertone-oss-archive/supertonic-3 --revision aafc6e32416a594460b32413efc49d7fe4ce6d46 --local-dir assets

Generate a Korean WAV and try another preset

Install the ONNX example dependencies in the same environment and run the synthesis command from the py/ folder. The example defaults to M1, but the command names the preset file explicitly. --lang ko tells it that the input text is Korean.

Synthesize Korean text with the M1 preset
python -m pip install -r py/requirements.txt
cd py
python example_onnx.py --n-test 1 --text "오늘 회의는 오후 두 시에 시작합니다." --lang ko --voice-style ../assets/voice_styles/M1.json

The measurement used an Apple M4 CPU, ONNX Runtime 1.23.1 CPUExecutionProvider, F3, 8 steps, speed 1.05, and seed 42. Each language had one warm-up followed by three runs; only the tts() call after model loading was timed.

For about 12 seconds of Korean speech, the median synthesis call took 2.30 seconds. This value excludes model download and loading, WAV saving, and MP3 encoding. Listen to the public sample, then generate your own text on the CPU to check the result. Measurement conditions and data

On success, a WAV whose filename includes part of the text appears under py/results/. Listen for numbers, product names, and sentence endings. To try another voice, replace M1.json with a file such as F3.json from assets/voice_styles/. If no file appears, inspect the first terminal error and the py/results/ folder.

Scroll sideways to compare all columns.

Audio duration and synthesis-call time by language
LanguageAudio durationMedian tts()RTF
Korean12.04 s2.299 s0.191
English11.15 s2.215 s0.199
Japanese14.64 s2.943 s0.201
A microphone, headphones, and a monitor showing an audio waveform
Listen to the generated WAV and check sentence endings and numbers.

Separate preset voices from custom voice styles

The public model assets include ten preset voice styles, M1–M5 and F1–F5. They let you select a voice included with the model. Keep the same text and language, then change only the --voice-style path to compare the presets' pronunciation and pace.

Voice Builder was a separate service for creating a user style from a reference recording, and it is not included in the archived repository. For this local example, choose one of the M1–F5 presets. Get permission before imitating another person's voice.

Review the code and model licenses separately

The example code uses the MIT license, while the model weights use OpenRAIL-M. Review the terms for modifying or distributing the software separately from the terms applying to the model weights and generated output. The repository and model card link to their license texts.

Generate the amount of speech you plan to use on the CPU and listen for numbers, names, and sentence endings. To run it in a browser, start the development server using the local example in the archived repository's web/README.md.

Headphones, an audio player, and an open notebook on a desk
Bundled presets and custom voice styles have different setup paths.

Terminology notes

  1. Text-to-Speech — Technology that converts text into spoken audio with pronunciation and prosody.

    Back to the text
  2. CPU — The central processor that runs the operating system and general-purpose instructions; in AI workloads it also handles tasks such as preprocessing and data movement.

    Back to the text
  3. Runtime — The software environment that provides facilities needed while a program runs. In local AI, it can also refer to a model execution engine.

    Back to the text

Frequently asked questions

What should you check first in this article?
Supertonic 3 is an on-device TTS system for 31 languages. Its public ONNX assets run on a CPU, and the included M1–M5 and F1–F5 voice presets can synthesize Korean into a WAV. Custom voice styles use a separate Voice Builder service path.
Where can you check the conditions and sources?
Supertonic 3 is a multilingual TTS system that takes text and a language code to create speech. Its public model files run with ONNX Runtime; set Korean to `ko` and a bundled voice preset to save a WAV. The model card lists 31 languages, including Korean, English, and Japanese. [Supertonic 3 model card](https://huggingface.co/supertone-oss-archive/supertonic-3)