RLX TTS (FastSpeech2 + WaveRNN)
Single-file RLX FastSpeech2 + WaveRNN TTS as rlx-tts.rlxp.
| Field | Value |
|---|---|
| Hub id | eugenehp/rlx-tts |
| Kind | RLX-native weight bundle (graphs + sidecars ready for rlx-* crates). |
| RLX crate | rlx-tts |
Quick start
just fetch-rlx-tts # or: hf download eugenehp/rlx-tts rlx-tts.rlxp --local-dir weights/tts/rlx-tts
just fetch-rlx-tts && just tts-demo
Primary files (use these)
rlx-tts.rlxpβ 160.0 MiB
Contents
Hub ships rlx-tts.rlxp only. Pack locally with just export-rlx-tts-rlxp.
Pack layout (.rlxp)
Tensor + frontend pack: FastSpeech2 encoder/decoder and WaveRNN weights in the hot region; G2P / lexicon / neural frontend files as cold sidecars.
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 | rlx-tts.rlxp (160.0 MiB) |
| Manifest name | rlx-tts |
| Producer | rlx-tts |
| Container | RLXPFLAT v2, flags=0x1 |
| Tensors | 281 |
| Sidecars | 15 |
Tensors (hot weight region)
All acoustic weights are f32 row-major, hot (uncompressed).
All tensors are mmap'd from the hot region (schemes: f32Γ281).
| Prefix | Tensors | Stored | Role |
|---|---|---|---|
encoder.* |
198 | 111.3 MiB | FastSpeech2 encoder + variance adaptor |
decoder.* |
55 | 18.5 MiB | FastSpeech2 mel decoder |
wavernn.* |
28 | 7.1 MiB | WaveRNN vocoder |
Sidecars (file assets)
Text-normalization / G2P assets used before the acoustic model.
Paths below are logical ids inside the pack (__flat__/sidecar/<id>).
Cold sidecars are zstd-compressed; sizes show raw β stored.
| Sidecar | Raw | Stored | Role |
|---|---|---|---|
frontend/g2p_post_rule.dat |
2.8 KiB | 416 B | G2P post rules |
frontend/rewrite_rule.dat |
7.0 MiB | 472.1 KiB | Rewrite transducer rules |
frontend/g2p_seq2seq.safetensors |
28.9 MiB | 22.1 MiB | Seq2seq G2P checkpoint |
frontend/g2p_lhp_rule.dat |
8.5 KiB | 989 B | G2P LHP rules |
frontend/tn_prefix_rule.dat |
913.3 KiB | 72.7 KiB | Text-norm prefix rules |
manifest.json |
3.7 KiB | 1.4 KiB | Bundle manifest (sample rate, paths, versions) |
neural_fe_config.json |
3.6 KiB | 1.2 KiB | Neural frontend config |
post.cfg |
8.3 KiB | 1.7 KiB | Post-filter / WaveRNN post config |
symmap.json |
1.1 KiB | 390 B | Symbol map |
frontend/gprm_index.json |
119 B | 95 B | GPRM index |
frontend/rewrite_map.json |
102 B | 87 B | Rewrite map |
frontend/nashville_isym_phones.json |
273.5 KiB | 37.0 KiB | Phone inventory |
frontend/phonetic/to_lhp.json |
1.1 KiB | 360 B | Phone β LHP map |
lexicon.txt |
200 B | 146 B | Lexicon overrides |
frontend/g2p_bpe.json |
1.6 MiB | 347.4 KiB | G2P BPE vocab |
Architecture
Pipeline: text β G2P frontend β FastSpeech2 encoder β mel decoder β WaveRNN β WAV.
| Prefix | Role | dtype |
|---|---|---|
encoder.* |
FastSpeech2 + variance adaptor | f32 |
decoder.* |
mel decoder | f32 |
wavernn.* |
vocoder | f32 |
Logical tree
rlx-tts.rlxp
βββ tensors/
β βββ encoder.* # FastSpeech2
β βββ decoder.*
β βββ wavernn.* # vocoder
βββ sidecars/
βββ manifest.json / neural_fe_config.json / post.cfg / symmap.json
βββ lexicon.txt
βββ frontend/ # G2P + TN rules + safetensors
How it is packed
just export-rlx-tts-rlxp β rlx-tts --pack-rlxp. Converts local rlx-tts.gguf or packs encoder/decoder/wavernn safetensors + frontend files from the bundle dir.
Note
Hub ships .rlxp only. A local legacy rlx-tts.gguf still loads if present.
Run with RLX
Clone rlx-models, place this repo under weights/tts/rlx-tts (or pass the path explicitly), then:
just fetch-rlx-tts && just tts-demo
License
Apache License 2.0 β see LICENSE. Inherit upstream terms when redistributing.
Maintenance
Cards and LFS attrs are regenerated from the local weights/ tree in rlx-models via python3 scripts/prepare_weights_hf.py.