NeuTTS Nano Spanish β€” Core ML

Core ML conversion of neuphonic/neutts-nano-spanish for on-device Spanish TTS on Apple platforms.

Contents

File Description Size
NeuTTSNanoSpanish_KVCache_ctx2048.mlpackage Backbone FP16 (stateful KV Cache) ~1.1 GB
NeuTTSNanoSpanish_KVCache_ctx2048_INT8.mlpackage Backbone INT8 (weight-quantized) ~600 MB
NeuCodecDecoder.mlpackage Audio decoder (STFT ri output; Swift does ISTFT) ~100 MB
tokenizer/ Tokenizer files β€”
coreml_meta.json Conversion metadata β€”

Requirements

  • iOS 18+ / macOS 15+ (backbone requires stateful KV Cache)
  • iOS 16+ / macOS 13+ (codec decoder only)

Inference pipeline

1. Phonemize Spanish text with espeak-ng (language: es)
2. Tokenize phonemes + reference speech codes β†’ input_ids
3. Run backbone (prefill + autoregressive decode) β†’ speech token IDs
4. Run NeuCodec decoder β†’ STFT ri spectrum (1, 2*F, N)
5. Swift runtime performs ISTFT β†’ 24 kHz PCM audio

Architecture

  • Backbone: LlamaForCausalLM, vocab_size=194256, hidden_size=576, 24 layers, GQA (9 heads / 3 KV heads)
  • KV Cache: stateful, max_context_len=2048, size=37.7 MB FP16
  • Codec: NeuCodec FSQ, 50 tokens/s, outputs STFT ri components for Swift ISTFT

Notes on NeuCodec decoder

The CoreML NeuCodec decoder outputs STFT real/imaginary (ri) spectrum (1, 2*F, N) rather than raw audio. The Inverse STFT is performed by the Swift runtime using precomputed IDFT matrix and Overlap-and-Add, avoiding CoreML Tools limitations with complex number operations.

Original model

See neuphonic/neutts-nano-spanish for full details, license, and usage instructions.
NeuTTS Nano Spanish is released under the NeuTTS Open License 1.0.

Downloads last month
5
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for aoiandroid/neutts-nano-spanish-coreml

Quantized
(2)
this model