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
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support