TinyTTS / MeloTTS RLX bundle
MeloTTS/VITS2 English nested .rlxp subgraphs + frontend for RLX TinyTTS and MeloTTS. CPU / Metal / MLX / CUDA / wgpu.
| Field | Value |
|---|---|
| Hub id | eugenehp/tiny-tts-rlx |
| Kind | RLX-native weight bundle (graphs + sidecars ready for rlx-* crates). |
| RLX crate | rlx-tiny-tts |
| Upstream | https://github.com/tronghieuit/tiny-tts |
Quick start
just fetch-tiny-tts # or: hf download eugenehp/tiny-tts-rlx tiny-tts.rlxp --local-dir weights/tts/tiny-tts-rlx
just fetch-tiny-tts && cargo run -p rlx-tiny-tts --release --features apple-silicon -- --data weights/tts/tiny-tts-rlx --text "Hi." --device metal --out /tmp/tiny.wav
Primary files (use these)
tiny-tts.rlxpβ 29.4 MiB
Contents
Hub ships tiny-tts.rlxp only (nested graph packs + frontend). Also used by rlx-melotts / just fetch-melotts. Runtime does not load .onnx from Hub.
Pack layout (.rlxp)
Outer RLXPFLAT bundle: nested native subgraph packs under graphs/ (hot weight tensors + graph IR sidecars) plus English frontend assets. No .onnx on Hub. rlx-tiny-tts materializes the outer pack, then lowers each nested pack to HIR for the utterance length.
Official RLX package format (RLXPFLAT, container v2).
[0..8) magic RLXPFLAT
[8..12) version u32 LE (= 2)
[12..16) flags u32 LE (hybrid hot/warm/cold)
[16..24) toc_len u64 LE
[24..) TOC JSON table of contents
data region 64-byte aligned payloads
The TOC lists tensors (named weight blobs) and/or sidecars (files: ONNX, tokenizers, manifests, β¦). Sidecars are usually cold + zstd; model weights in tensor packs are hot + uncompressed for mmap. Runtime crates open the pack directly (or materialize sidecars to a temp dir for asset-only packs).
This pack
| Field | Value |
|---|---|
| File | tiny-tts.rlxp (29.4 MiB) |
| Manifest name | tiny-tts |
| Producer | rlx-assets |
| Container | RLXPFLAT v2, flags=0x1 |
| Tensors | 0 |
| Sidecars | 16 |
Sidecars (file assets)
Outer TOC is file sidecars only. Neural weights live inside each graphs/<name>.rlxp as hot mmap tensors (not safetensors).
Paths below are logical ids inside the pack (__flat__/sidecar/<id>).
Cold sidecars are zstd-compressed; sizes show raw β stored.
| Sidecar | Raw | Stored | Role |
|---|---|---|---|
config.json |
325 B | 220 B | Model / sample-rate config (44.1 kHz) |
frontend/bert/tokenizer.json |
694.7 KiB | 214.5 KiB | BERT WordPiece tokenizer |
frontend/bert/tokenizer_config.json |
351 B | 218 B | Tokenizer config |
frontend/cmudict_rep.txt |
3.9 MiB | 1.0 MiB | CMUdict repair / variants |
frontend/g2p_checkpoint.safetensors |
3.2 MiB | 3.0 MiB | G2P checkpoint |
frontend/g2p_cmudict.txt |
3.3 MiB | 995.6 KiB | CMUdict for G2P |
frontend/homographs.en |
18.3 KiB | 5.0 KiB | Homograph list |
frontend/perceptron_tagger.json |
5.4 MiB | 1.5 MiB | POS tagger |
frontend/symbols.json |
2.1 KiB | 726 B | Symbol table |
graphs/decoder.rlxp |
13.7 MiB | 12.5 MiB | Nested pack: hot tensors + graph.json |
graphs/duration_predictor.rlxp |
1.0 MiB | 598.8 KiB | Nested pack: hot tensors + graph.json |
graphs/flow.rlxp |
13.7 MiB | 8.0 MiB | Nested pack: hot tensors + graph.json |
graphs/text_encoder.rlxp |
2.9 MiB | 1.7 MiB | Nested pack: hot tensors + graph.json |
Architecture
Pipeline: text β English frontend (G2P) β text_encoder β duration_predictor β monotonic alignment + latent sample (Rust) β flow β decoder β 44.1 kHz mono WAV.
| Module | Role | Typical dtype | Notes |
|---|---|---|---|
text_encoder |
phone/tone/lang β latent | f32 | length = phoneme count T |
duration_predictor |
per-phone duration | f32 | |
flow |
prior / flow | f32 | |
decoder |
HiFi-GAN-style vocoder | f32 | ConvTranspose upsample Γ512 |
| frontend | G2P + BERT tokenizer + CMUdict | β | file sidecars |
Logical tree
tiny-tts.rlxp
βββ graphs/
β βββ text_encoder.rlxp # hot f32/i64 + graph.json
β βββ duration_predictor.rlxp
β βββ flow.rlxp
β βββ decoder.rlxp
βββ config.json
βββ frontend/ # G2P / tokenizer (not neural)
How it is packed
just export-tiny-tts-rlxp / pack_rlxp example: ONNX pack-time source β nested graphs/*.rlxp via rlx-assets native-pack, then outer bundle. Hub artifact has zero .onnx.
Note
MeloTTS (rlx-melotts) loads this same bundle β locally weights/tts/melotts is a symlink.
Note
Hub ships no ONNX. Nested graphs/*.rlxp hold hot f32/i64 tensors + graph.json; the crate lowers to HIR per utterance length.
Run with RLX
Clone rlx-models, place this repo under weights/tts/tiny-tts-rlx (or pass the path explicitly), then:
just fetch-tiny-tts && cargo run -p rlx-tiny-tts --release --features apple-silicon -- --data weights/tts/tiny-tts-rlx --text "Hi." --device metal --out /tmp/tiny.wav
License
MIT β see LICENSE. Inherit upstream terms when redistributing.
Original weights and authorship: https://github.com/tronghieuit/tiny-tts
Maintenance
Cards and LFS attrs are regenerated from the local weights/ tree in rlx-models via python3 scripts/prepare_weights_hf.py.
- Downloads last month
- 201