Text-to-Speech
Safetensors
English
steertts
steer-tts
tts
speech-synthesis
english
controllable-tts
steerable-tts
prosody-control
expressive-tts
style-control
inline-markup
word-emphasis
zero-shot-voice-cloning
voice-cloning
interpretable
non-autoregressive
fastpitch
mamba
mamba-3
state-space-model
hybrid-attention
flow-matching
vocos
small-model
on-device
streaming
non-commercial
Eval Results (legacy)
SteerTTS v1 (9.6M acoustic model + Vocos; flow refiner, prompted-flow cloning, prompt adapter); CC BY-NC 4.0 weights, MIT code
e7f5286 verified |
Download TEST_LOG.md from WhissleAI/steer-tts: direct link, hf CLI and curl.
- Browser
- Download file 3.81 kB
-
https://huggingface.co/WhissleAI/steer-tts/resolve/main/TEST_LOG.md
- Command line
-
hf download hf://WhissleAI/steer-tts/TEST_LOG.md
-
curl -L -o TEST_LOG.md https://huggingface.co/WhissleAI/steer-tts/resolve/main/TEST_LOG.md
3.81 kB
| # Release verification log: steertts-v1 | |
| Date: 2026-10-11. Everything ran on the CPU (4 threads, `nice -n 19`) of a shared 48-core workstation, with a 1-min | |
| load average of 20 to 40 from other jobs. The timings are lower bounds. | |
| ## Weights | |
| | File | Source checkpoint | sha256 (first 16) | | |
| |---|---|---| | |
| | `model.safetensors` | acoustic model, step 312,500 | `adc11912871113e3` | | |
| | `flow.safetensors` | flow refiner (EMA), step 100,000 | `585ff2c931811c30` | | |
| | `pflow.safetensors` | prompted flow with prompt attention (EMA), step 40,000 | `877f81523dfaba50` | | |
| | `prompt_adapter.safetensors` | free-text β request adapter | `aca34bf753456e46` | | |
| | `speaker_vectors.safetensors` | 2,825 built-in voices (public names only) | `edcabfd02dd4a520` | | |
| These are the checkpoints behind the model card's numbers. The prompted flow is the one in the leaderboard cloning row | |
| (1.01 % / 37.4 and 2.73 % / 28.7). | |
| ## 1. Fresh-environment install | |
| - A new Python 3.11 venv (uv) with the CPU torch wheel. Then `pip install ".[test]"` from a copy of the package | |
| code, holding no weights. | |
| - Resolved versions: torch 2.11.0+cpu, torchaudio 2.11.0+cpu, numpy 2.4.6, safetensors 0.8.0, vocos 0.1.0, | |
| g2p_en 2.1.0, nltk 3.10.3, num2words 0.5.14, soundfile 0.14.0, soxr 1.1.0, transformers 5.19.0, | |
| praat-parselmouth 0.4.7, pytest 9.1.1, jsonschema 4.26.0. | |
| - Not fresh: the Hugging Face hub cache and `~/nltk_data` came from the host. A first run on a new machine | |
| downloads `charactr/vocos-mel-24khz`, plus `microsoft/wavlm-base-plus-sv` for cloning and | |
| `sentence-transformers/all-MiniLM-L6-v2` for free-text prompts, and the NLTK tagger and CMUdict. | |
| ## 2. Test suite | |
| `STEERTTS_MODEL=<this dir> pytest` from the fresh env gave **16 passed** in 6 min 11 s. The suite covers: | |
| - the Mamba-3 invariant suite; | |
| - text normalisation and phonemes; | |
| - the request schema and its examples; | |
| - request validation errors; | |
| - deterministic renders, both acoustic-only and through the flow refiner; | |
| - pace and rate; | |
| - Praat readback direction for `loud`, `f0_med` and `h1h2`; | |
| - markup and streaming; | |
| - cloning; | |
| - prompt β request mapping. | |
| ## 3. Parity with the training code | |
| The same inputs were rendered on the same device (CPU) by this package and by the training repository's | |
| `steer.synth.Synth`, given the source checkpoints above. Every case was **bit-identical** (max |Ξ| = 0): | |
| | Case | Samples | Identical | | |
| |---|---|---| | |
| | default voice, acoustic only | 73,472 | yes | | |
| | `ctrl` rate/f0_med/f0_end, acoustic only | 68,096 | yes | | |
| | tag `sadness` + `loud` β1, guidance 1.5 | 85,760 | yes | | |
| | `word_shift` (pitch/energy/dur on one word) | 37,376 | yes | | |
| | another built-in voice, flow refiner | 73,216 | yes | | |
| | `ctrl` loud/f0_iqr, flow refiner | 75,008 | yes | | |
| | cloning from a reference clip, prompted flow | 51,456 | yes | | |
| Cross-environment check: two renders (acoustic only, and flow + ctrl) were bit-identical between the fresh venv | |
| (torch 2.11.0+cpu) and the training environment (torch 2.11.0+cu128, run on the CPU). GPU renders are deterministic | |
| per device but are not bit-identical to CPU renders. | |
| ## 4. Speed on this package (CPU, 4 threads, load average about 22) | |
| | Path | RTFx (3 texts, 1.7β5 s) | | |
| |---|---| | |
| | Acoustic model + Vocos (`flow=False`) | 4.35β5.59 (median 4.89) | | |
| | + flow refiner (default) | 0.62β0.79 (median 0.71) | | |
| | Streaming, first chunk (`flow=False`) | 0.49 s | | |
| ## 5. Hygiene | |
| - No source-corpus speaker or clip identifiers appear in any file. The build fails on the pattern check in | |
| `steer.release`, and the check was re-run here with grep. | |
| - VoxCeleb-derived speakers are excluded from the voice list. | |
| - The schema `$id` is a URN (`urn:steertts:request-schema:v1`), not a URL. | |
| - `leaderboard/` names a placeholder Hugging Face repo id. It is not referenced by the package code. | |