LuxTTS-mlx / README.md
freeman412's picture
LuxTTS fp32 MLX weights, converted from YatharthS/LuxTTS
e970dfb verified
|
Raw History Blame Contribute Delete
1.78 kB
---
license: apache-2.0
language:
- en
pipeline_tag: text-to-speech
tags:
- mlx
- text-to-speech
- voice-cloning
- apple-silicon
base_model: YatharthS/LuxTTS
---
# LuxTTS β€” MLX weights (fp32)
[LuxTTS](https://huggingface.co/YatharthS/LuxTTS) converted to MLX-native
safetensors, for Apple silicon. Same model, same precision β€” a key-remap and a
conv-layout transpose, nothing retrained and nothing quantized.
Upstream ships `model.pt` (torch) and ONNX graphs. Neither loads in MLX, so
every MLX consumer had to run the conversion itself and keep the result
somewhere local. This repo is that result, published once.
## Files
| File | Size | |
|---|---|---|
| `lux_model.safetensors` | 468 MB | ZipVoiceDistill β€” fm_decoder + text_encoder + embeddings |
| `lux_vocoder.safetensors` | 61 MB | Vocos vocoder, MLX conv layout |
| `config.json` | β€” | model dimensions, 24 kHz feature config |
| `tokens.txt` | β€” | phoneme vocabulary |
fp32 on purpose. fp16 halves the download and is indistinguishable on a long,
clean reference β€” and audibly worse on a short one. Blind A/B on a clone made
from an 8-second phone recording: 4 of 8 fp16 renders had artefacts a listener
rejected, against 0 of 8 at fp32. If you are cloning from short user
recordings, use these.
## Use
```swift
// EngineKit (Gloam Voice Studio)
let model = try await LuxSpeechModel.load(from: weightsDirectory)
```
The directory needs all four files side by side.
## Provenance and license
Converted from [YatharthS/LuxTTS](https://huggingface.co/YatharthS/LuxTTS),
Apache-2.0, which this repo inherits. The vocoder is
[Vocos](https://github.com/gemelo-ai/vocos). Conversion and publication by
[Tiny Trash Labs](https://tinytrashlabs.com) for
[Gloam Voice Studio](https://gloam.fm/studio).