Zum Inhalt springen
ModelAufgelistetExtern
Browse files

Luxtts Coreml

CoreML conversion of YatharthS/LuxTTS for on-device inference on Apple platforms.

ArtOtherBasismodellYatharthS/LuxTTSVersionRevision eced034BBewertung

Modellquelle

Art
Other
Dateigröße
243 B–312 MB
Basismodell
YatharthS/LuxTTS
Version
vRevision eced034
Aktualisiert
31. Okt. 2026
Downloads
51
Quelle
Hugging Face

Quellenbeschreibung

LuxTTS CoreML

CoreML conversion of YatharthS/LuxTTS for on-device inference on Apple platforms.

LuxTTS is a 48 kHz zero-shot voice-cloning TTS (~123M params): give it a short reference clip plus its transcript, and it speaks new text in that voice. It is based on ZipVoice (k2-fsa, Xiaomi) — a flow-matching Zipformer decoder run with a 4-step solver — with a dual-head Vocos vocoder from LinaCodec (ysharma3501).

Models

PathModelSizeNotes
gpu/TextEncoder.mlmodelcText encoder (256 tokens)9.5 MBfp16
gpu/FmDecoder.mlmodelcFlow-matching decoder, 1024-frame bucket256 MBfp16, original graph — macOS GPU path
gpu-6bit/FmDecoder.mlmodelc6-bit palettized decoder, 1024-frame bucket115 MBfull GPU speed, -0.45 dB, transcript-transparent
gpu-long/TextEncoder.mlmodelcText encoder (512 tokens)13 MBfp16
gpu-long/FmDecoder.mlmodelcDecoder, 2048-frame bucket349 MBlong-form macOS (~16.8 s per bucket)
ane/TextEncoder.mlmodelcText encoder (256 tokens)9.5 MBfp16
ane/FmDecoder.mlmodelcANE-canonical decoder, 1024-frame bucket313 MB100% ANE placement — iPhone path
vocoder/Vocoder282.mlmodelcVocos vocoder, 282 gen frames (~3.0 s)33 MBISTFT + 24k→48k resample + crossover in-graph
vocoder/Vocoder555.mlmodelcVocos vocoder, 555 gen frames (~5.9 s)33 MBmatches the full 1024-frame bucket
tokens.txt / config.jsonPhoneme token table + model config—from upstream LuxTTS

Two decoder graphs — pick by compute unit

  • gpu/ — the original graph layout. Fastest on Mac GPU. Do not run it on the ANE: the seq-first rel-pos attention path loses precision there and produces corrupted audio.
  • ane/ — ANE-canonical rewrite (channels-first (1,C,1,S), 1×1-conv projections, constant rel-pos basis, split depthwise kernels). 100% ANE op placement, zero CPU fallback. This is the iPhone path; it is slower than the original graph on GPU, so keep both.

All decoder inputs/outputs are identical across graphs (t, x, text_condition, speech_condition, guidance_scale, padding_mask → v).

Performance (M5 Pro, macOS)

pathfm stepcore RTFx (full bucket)steady footprint
gpu/ fp16, GPU14.7 ms92x (~5.9 s gen)996 MB
gpu-6bit/, GPU15.0 ms~92x419 MB
ane/ fp16, ANE54.6 ms27x25.5 MB
  • Vocoder: 2.34 ms on GPU (282 frames); end-to-end ~64 ms for 3 s of audio (~47x realtime).
  • Quality vs PyTorch reference: log-mel cosine 0.99925 (GPU path); whisper-base transcripts word-identical for all shipped variants.
  • Footprints are phys_footprint from a Swift host; the ANE graph keeps weights and activations in ANE-managed memory, hence the 25.5 MB jetsam-visible footprint.

Fixed-shape buckets

CoreML graphs are compiled at fixed shapes. Frame budget covers prompt + generated speech (86.13 frames/s):

  • gpu/, ane/: 1024 frames (~5.9 s generated after a 5 s prompt), 256 text tokens
  • gpu-long/: 2048 frames (~16.8 s generated), 512 text tokens
  • vocoder: fixed at 282 or 555 generated frames

Chunk long text at sentence boundaries for the 1024-frame bucket on iPhone.

Usage notes

The CoreML graphs cover the text encoder, flow-matching decoder, and vocoder (ISTFT, 24k→48k resample, and the Linkwitz crossover are all in-graph). The host must provide:

  • Phoneme tokenization against tokens.txt (espeak-compatible token set) — the frontend is phoneme-token based, not raw text.
  • Duration expansion of encoder output into the frame grid (upstream pad_labels keeps S+1 token rows; the pad slot's embedding fills remainder frames).
  • The 4-step anchor-Euler flow solver with t_shift = 0.5 and guidance_scale = 3.0.
  • Prompt trimming at a speech pause (VAD boundary), not a fixed duration — a prompt hard-cut mid-phrase makes the model elide sentence-initial words.
  • speed default 1.0 (upstream's generate() default of 1.3 clips sentence onsets).

Swift integration in FluidAudio is upcoming.

Known limitations

  • Fixed-shape buckets only (no enumerated/flexible shapes yet).
  • An int8-linear variant exists but crashes MPSGraph on macOS 26.5 GPU — not shipped.
  • The ANE graph is ~0.5 dB softer than the GPU graph (fp16 accumulation over 16 layers × 4 solver steps); transcripts are unaffected.

Attribution & license

  • LuxTTS by YatharthS — Apache-2.0.
  • Based on ZipVoice by k2-fsa (Xiaomi) — Apache-2.0.
  • Vocoder from LinaCodec (ysharma3501).
  • CoreML conversion by FluidInference; conversion source lives in the mobius repo (models/tts/zipvoice, PR #75).

References

Quellen

1 Quelle
Hugging FacePrimärVersion eced034418cb9a9a6fc2ce9cd7362a52b9a1fabe
huggingface.co/FluidInference/luxtts-coreml/tree/eced034418cb9a9a6fc2ce9cd7362a52b9a1fabe

Verifiziert 31. Okt.

Download files

Modellartefakte

27 Artefakte

ane/FmDecoder.mlmodelc/analytics/coremldata.bin

bin · 243 B · SHA-256 d2ffcfdf275e…8bb8 · Hugging Face

Download file

ane/FmDecoder.mlmodelc/coremldata.bin

bin · 504 B · SHA-256 b3e3f177caf2…3b54 · Hugging Face

Download file

ane/FmDecoder.mlmodelc/weights/weight.bin

bin · 312 MB · SHA-256 4c50bb5d66cb…8f46 · Hugging Face

Download file

ane/TextEncoder.mlmodelc/analytics/coremldata.bin

bin · 243 B · SHA-256 11fe573ed7a0…d648 · Hugging Face

Download file

ane/TextEncoder.mlmodelc/coremldata.bin

bin · 408 B · SHA-256 14f0113bcd36…0f48 · Hugging Face

Download file

ane/TextEncoder.mlmodelc/weights/weight.bin

bin · 8,09 MB · SHA-256 3f390f15b56c…dde6 · Hugging Face

Download file

gpu-6bit/FmDecoder.mlmodelc/analytics/coremldata.bin

bin · 243 B · SHA-256 f2d8ab420097…fe40 · Hugging Face

Download file

gpu-6bit/FmDecoder.mlmodelc/coremldata.bin

bin · 504 B · SHA-256 8140f2427513…1966 · Hugging Face

Download file

gpu-6bit/FmDecoder.mlmodelc/weights/weight.bin

bin · 85,4 MB · SHA-256 6d4399f0b2f7…3ab1 · Hugging Face

Download file

gpu-long/FmDecoder.mlmodelc/analytics/coremldata.bin

bin · 243 B · SHA-256 779a05fc8245…3a3e · Hugging Face

Download file

gpu-long/FmDecoder.mlmodelc/coremldata.bin

bin · 504 B · SHA-256 7efe79a4908f…26f0 · Hugging Face

Download file

gpu-long/FmDecoder.mlmodelc/weights/weight.bin

bin · 227 MB · SHA-256 eae0f3d2d064…5be9 · Hugging Face

Download file

gpu-long/TextEncoder.mlmodelc/analytics/coremldata.bin

bin · 243 B · SHA-256 dbfc4b266484…ce84 · Hugging Face

Download file

gpu-long/TextEncoder.mlmodelc/coremldata.bin

bin · 408 B · SHA-256 cec8fd8d7a07…d50f · Hugging Face

Download file

gpu-long/TextEncoder.mlmodelc/weights/weight.bin

bin · 8,16 MB · SHA-256 ad4dab7ffc6a…d2dc · Hugging Face

Download file

gpu/FmDecoder.mlmodelc/analytics/coremldata.bin

bin · 243 B · SHA-256 1ac870369434…cef3 · Hugging Face

Download file

gpu/FmDecoder.mlmodelc/coremldata.bin

bin · 504 B · SHA-256 d944ef10ac85…2496 · Hugging Face

Download file

gpu/FmDecoder.mlmodelc/weights/weight.bin

bin · 227 MB · SHA-256 c633c48857ea…242e · Hugging Face

Download file

gpu/TextEncoder.mlmodelc/analytics/coremldata.bin

bin · 243 B · SHA-256 11fe573ed7a0…d648 · Hugging Face

Download file

gpu/TextEncoder.mlmodelc/coremldata.bin

bin · 408 B · SHA-256 1bc2506cd274…27c6 · Hugging Face

Download file

gpu/TextEncoder.mlmodelc/weights/weight.bin

bin · 8,09 MB · SHA-256 3f390f15b56c…dde6 · Hugging Face

Download file

vocoder/Vocoder282.mlmodelc/analytics/coremldata.bin

bin · 243 B · SHA-256 2bde9c2ef71d…2d79 · Hugging Face

Download file

vocoder/Vocoder282.mlmodelc/coremldata.bin

bin · 370 B · SHA-256 d15e4be675e3…d747 · Hugging Face

Download file

vocoder/Vocoder282.mlmodelc/weights/weight.bin

bin · 32,8 MB · SHA-256 def01cc84d75…76ef · Hugging Face

Download file

vocoder/Vocoder555.mlmodelc/analytics/coremldata.bin

bin · 243 B · SHA-256 cd28319df22f…7bb0 · Hugging Face

Download file

vocoder/Vocoder555.mlmodelc/coremldata.bin

bin · 370 B · SHA-256 1d086b412be9…2eee · Hugging Face

Download file

vocoder/Vocoder555.mlmodelc/weights/weight.bin

bin · 33,2 MB · SHA-256 c35b601e5d0c…ce7a · Hugging Face

Download file

Quellenauszüge

3 Auszüge

--- license: apache-2.0 library_name: coreml tags: - tts - text-to-speech - coreml - ane - apple - on-device - voice-cloning language: - en pipeline_tag: text-to-speech base_model: - YatharthS/LuxTTS base_model_relation: quantized --- # LuxTTS CoreML CoreML conversion of [YatharthS/LuxTTS](https://huggingface.co/YatharthS/LuxTTS) for on-device inference on Apple platforms. LuxTTS is a 48 kHz zero-shot voice-cloning TTS (~123M params): give it a short reference clip plus its transcript, and it speaks new text in that voice. It is based on [ZipVoice](https://github.com/k2-fsa/ZipVoice) (k2-fsa, Xiaomi) — a flow-matching Zipformer decoder run with a 4-step solver — with a dual-head Vocos vocoder from LinaCodec (ysharma3501). ## Models | Path | Model | Size | Notes | |------|-------|------|-------| | `gpu/TextEncoder.mlmodelc` | Text encoder (256 tokens) | 9.5 MB | fp16 | | `gpu/FmDecoder.mlmodelc` | Flow-matching decoder, 1024-frame bucket | 256 MB | fp16, original graph — **macOS GPU path** | | `gpu-6bit/FmDecoder.mlmodelc` | 6-bit palettized decoder, 1024-frame bucket | 115 MB | full GPU speed, -0.45 dB, transcript-transparent | | `gpu-long/TextEncoder.mlmodelc` | Text encoder (512 tokens) | 13 MB | fp16 | | `gpu-long/FmDecoder.mlmodelc` | Decoder, 2048-frame bucket | 349 MB | long-form macOS (~16.8 s per bucket) | | `ane/TextEncoder.mlmodelc` | Text encoder (256 tokens) | 9.5 MB | fp16 | | `ane/FmDecoder.mlmodelc` | ANE-canonical decoder, 1024-frame bucket | 313 MB | 100% ANE placement — **iPhone path** | | `vocoder/Vocoder282.mlmodelc` | Vocos vocoder, 282 gen frames (~3.0 s) | 33 MB | ISTFT + 24k→48k resample + crossover in-graph | | `vocoder/Vocoder555.mlmodelc` | Vocos vocoder, 555 gen frames (~5.9 s) | 33 MB | matches the full 1024-frame bucket | | `tokens.txt` / `config.json` | Phoneme token table + model config | — | from upstream LuxTTS | ### Two decoder graphs — pick by compute unit - **`gpu/`** — the original graph layout. Fastest on Mac GPU. **Do not run it on the ANE**: the seq-first rel-pos attention path loses precision there and produces corrupted audio. - **`ane/`** — ANE-canonical rewrite (channels-first `(1,C,1,S)`, 1×1-conv projections, constant rel-pos basis, split depthwise kernels). 100% ANE op placement, zero CPU fallback. This is the iPhone path; it is slower than the original graph on GPU, so keep both. All decoder inpu...

Source context: 51 downloads · 0 likes · Pipeline text-to-speech · Library coreml · Repo FluidInference/luxtts-coreml

Source context: 26 downloads · 0 likes · Pipeline text-to-speech · Library coreml · Repo FluidInference/luxtts-coreml