Stdin-friendly CLI + Python API wrapper for Supertonic — lightning-fast, on-device, multilingual TTS
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file supersonic_tts-0.1.0.tar.gz.
File metadata
- Download URL: supersonic_tts-0.1.0.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0db0ff355a50b06fd8e129c4e8756e02923216a999e18957dff0195e50e7a952
|
|
| MD5 |
2157d09da100c0cff43ad0da1503036b
|
|
| BLAKE2b-256 |
69444943760a48ecf71a40d48a035c3d5fd78b813504f6f67f355d57f611325d
|
File details
Details for the file supersonic_tts-0.1.0-py3-none-any.whl.
File metadata
- Download URL: supersonic_tts-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f8d8f803e9711828ca3006a78fe2b0f75aecd7f074713798b88ddbb44c07221
|
|
| MD5 |
2763e1a4810dde5d3fe73c7e312d2699
|
|
| BLAKE2b-256 |
f6c1143e0c44608931c96d317addef0f883964896fb0aaea285e44a0922dd90e
|