| --- |
| license: apache-2.0 |
| pipeline_tag: text-to-speech |
| library_name: rlx |
| tags: |
| - soprano |
| - rlxp |
| - tts |
| - rlx |
| --- |
| |
| # Soprano 1.1 (RLX) |
|
|
| Single runnable `soprano.rlxp`: nested native backbone + Vocos packs (no ONNX on Hub). |
|
|
| | Field | Value | |
| |---|---| |
| | **Hub id** | [`eugenehp/soprano`](https://huggingface.co/eugenehp/soprano) | |
| | **Kind** | RLX-native weight bundle (graphs + sidecars ready for `rlx-*` crates). | |
| | **RLX crate** | [`rlx-soprano`](https://github.com/MIT-RLX/rlx-models/tree/main/crates/rlx-soprano) | |
| | **Upstream** | https://huggingface.co/KevinAHM/soprano-1.1-onnx | |
|
|
| ## Quick start |
|
|
| ```bash |
| just fetch-soprano # or: hf download eugenehp/soprano soprano.rlxp --local-dir weights/tts/soprano |
| just fetch-soprano && just soprano-demo |
| ``` |
|
|
| ## Primary files (use these) |
|
|
| - `soprano.rlxp` β 244.9 MiB |
|
|
| ## Contents |
|
|
| Hub ships `soprano.rlxp` only (nested `graphs/*.rlxp` + tokenizer). Pack locally with `just export-soprano-rlxp`. CPU / Metal / MLX / CUDA / wgpu. |
|
|
| ## Pack layout (`.rlxp`) |
|
|
| Outer RLXPFLAT with nested native subgraph packs for the Qwen3-style KV backbone and Vocos decoder. **No `.onnx` on Hub.** |
|
|
| Official RLX package format (`RLXPFLAT`, container v2). |
|
|
| ```text |
| [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** | `soprano.rlxp` (244.9 MiB) | |
| | **Manifest name** | `soprano` | |
| | **Producer** | `rlx-assets` | |
| | **Container** | RLXPFLAT v2, flags=0x1 | |
| | **Tensors** | 0 | |
| | **Sidecars** | 10 | |
|
|
| ### Sidecars (file assets) |
|
|
| Neural weights live inside nested `graphs/*.rlxp` (hot mmap). |
|
|
| Paths below are logical ids inside the pack (`__flat__/sidecar/<id>`). |
| Cold sidecars are zstd-compressed; sizes show raw β stored. |
|
|
| | Sidecar | Raw | Stored | Role | |
| |---|---:|---:|---| |
| | `.gitattributes` | 695 B | 136 B | | |
| | `LICENSE` | 11.1 KiB | 4.0 KiB | | |
| | `README.md` | 3.5 KiB | 1.7 KiB | | |
| | `config.json` | 1.1 KiB | 426 B | | |
| | `generation_config.json` | 111 B | 95 B | | |
| | `graphs/soprano_backbone_kv_fp32.rlxp` | 304.4 MiB | 137.6 MiB | Nested backbone pack | |
| | `graphs/soprano_decoder_fp32.rlxp` | 115.8 MiB | 107.2 MiB | Nested Vocos pack | |
| | `special_tokens_map.json` | 142 B | 104 B | | |
| | `tokenizer.json` | 1.6 MiB | 31.8 KiB | Text tokenizer | |
| | `tokenizer_config.json` | 1.3 MiB | 18.2 KiB | | |
|
|
| ### Architecture |
|
|
| **Pipeline:** text β tokenizer β AR backbone (KV cache) β Vocos decoder β 32 kHz mono. |
|
|
| | Module | Role | Dims | dtype | |
| |---|---|---|---| |
| | `soprano_backbone_kv_fp32` | 17-layer AR LM + KV | hidden 512, head_dim 128, vocab 8192 | f32 | |
| | `soprano_decoder_fp32` | Vocos vocoder | TOKEN_SIZE 2048 | f32 | |
| | `tokenizer.json` | text tokenizer | β | β | |
|
|
| ### Logical tree |
|
|
| ```text |
| soprano.rlxp |
| βββ graphs/ |
| β βββ soprano_backbone_kv_fp32.rlxp |
| β βββ soprano_decoder_fp32.rlxp |
| βββ tokenizer.json (+ HF tokenizer sidecars) |
| ``` |
|
|
| ### How it is packed |
|
|
| `just export-soprano-rlxp` β pack-time ONNX β nested `graphs/*.rlxp`. Hub has zero ONNX. |
|
|
| ## Note |
|
|
| Hub ships `.rlxp` only β **no ONNX**. Nested packs hold hot tensors + graph.json; runtime lowers per KV/seq bucket. |
|
|
| ## Run with RLX |
|
|
| Clone [rlx-models](https://github.com/MIT-RLX/rlx-models), place this repo under `weights/tts/soprano` (or pass the path explicitly), then: |
|
|
| ```bash |
| just fetch-soprano && just soprano-demo |
| ``` |
|
|
| ## License |
|
|
| Apache License 2.0 β see `LICENSE`. Inherit upstream terms when redistributing. |
|
|
| Original weights and authorship: https://huggingface.co/KevinAHM/soprano-1.1-onnx |
|
|
| ## Maintenance |
|
|
| Cards and LFS attrs are regenerated from the local `weights/` tree in [rlx-models](https://github.com/MIT-RLX/rlx-models) via `python3 scripts/prepare_weights_hf.py`. |
|
|