supersonic-tts
Stdin-friendly CLI + Python API wrapper for Supertonic — lightning-fast, on-device, multilingual TTS via ONNX Runtime.
No cloud API. No data leaves your machine. 31 languages. 10 voices.
Why supersonic-tts?
Supertonic's official CLI takes text as a positional argument — awkward for piped input, shell scripts, and AI agents. supersonic-tts wraps it with:
- Stdin support — pipe text directly:
echo "hello" | supersonic-tts -o out.wav - Hermes Agent integration — drop-in command-based TTS provider
- Same engine — uses supertonic under the hood (supertonic-3, ONNX)
Install
pip install supersonic-tts
First run auto-downloads the model (~305MB) from HuggingFace.
Usage
CLI
# Read from argument
supersonic-tts "Hello world" -o output.wav
# Read from stdin (piped)
echo "Hello from stdin" | supersonic-tts -o output.wav
# Read from file
cat long_text.txt | supersonic-tts -o output.wav
# Choose voice
supersonic-tts "Crisp and confident" -o output.wav --voice F4
# Multilingual
supersonic-tts "Bonjour le monde" -o french.wav --lang fr --voice F1
# Adjust speed
supersonic-tts "Fast talk" -o fast.wav --speed 1.5
# Higher quality
supersonic-tts "Premium quality" -o premium.wav --steps 10
Python API
from supersonic_tts import SupersonicTTS
tts = SupersonicTTS()
wav, duration = tts.synthesize("Hello world", voice="F4", lang="en")
tts.save("output.wav")
Hermes Agent Integration
Add to ~/.hermes/config.yaml:
tts:
provider: supersonic-tts
supersonic-tts:
type: command
command: supersonic-tts -o {output_path} --voice {voice} < {input_path}
voice: F4
model: supertonic-3
output_format: wav
voice_compatible: true
timeout: 60
Voices
| Voice | Style |
|---|---|
| M1 | Lively, upbeat male |
| M2 | Deep, calm male |
| M3 | Authoritative male |
| M4 | Soft, friendly male |
| M5 | Warm, storytelling male |
| F1 | Calm, composed female |
| F2 | Bright, cheerful female |
| F3 | Professional announcer female |
| F4 | Crisp, confident female |
| F5 | Gentle, soothing female |
Languages
31 languages (supertonic-3): en, ko, ja, ar, bg, cs, da, de, el, es, et, fi, fr, hi, hr, hu, id, it, lt, lv, nl, pl, pt, ro, ru, sk, sl, sv, tr, uk, vi, na (fallback)
License
MIT (code) — supertonic model uses OpenRAIL-M
Metadata
Release files for supersonic-tts 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| supersonic_tts-0.1.0.tar.gz | 4.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| supersonic_tts-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.5 kB
Release files / supersonic_tts-0.1.0.tar.gz
| Download URL | supersonic_tts-0.1.0.tar.gz |
|---|---|
| Size | 4.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0db0ff355a50b06fd8e129c4e8756e02923216a999e18957dff0195e50e7a952
|
|
BLAKE2b-256 checksum How to use checksums |
69444943760a48ecf71a40d48a035c3d5fd78b813504f6f67f355d57f611325d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / supersonic_tts-0.1.0-py3-none-any.whl
| Download URL | supersonic_tts-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3f8d8f803e9711828ca3006a78fe2b0f75aecd7f074713798b88ddbb44c07221
|
|
BLAKE2b-256 checksum How to use checksums |
f6c1143e0c44608931c96d317addef0f883964896fb0aaea285e44a0922dd90e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|