File size: 2,888 Bytes
2d14e88 8333b42 2d14e88 8333b42 2d14e88 8333b42 2d14e88 8333b42 2d14e88 8333b42 2d14e88 8333b42 2d14e88 8333b42 2d14e88 8333b42 2d14e88 8333b42 2d14e88 8333b42 2d14e88 8333b42 2d14e88 8333b42 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | ---
license: other
language:
- en
tags:
- gguf
- tts
- neutts
- text-to-speech
base_model: neuphonic/neutts-nano
---
# NeuTTS Nano GGUF
GGUF conversions of [Neuphonic's NeuTTS Nano](https://huggingface.co/neuphonic/neutts-nano) — a compact (~228 M params, ~117 M active) on-device TTS LM with instant voice cloning.
The stack is split so each runtime owns the part it's good at:
- **LLM-part** — text-and-reference-codes to speech token IDs, stock `llama` arch, runs in **llama.cpp**.
- **Codec-part** — speech token IDs to/from 24 kHz PCM via [NeuCodec](https://huggingface.co/neuphonic/neucodec), runs in [codec.cpp](https://github.com/mybigday/codec.cpp).
## Files
### LLM-part (llama arch, vocab 194256, RoPE θ=500000 + linear scaling x32)
`neutts-nano-<quant>.gguf`
| File | Size |
| ----------------- | ------- |
| `neutts-nano-f32.gguf` | 925 MB |
| `neutts-nano-f16.gguf` | 467 MB |
| `neutts-nano-bf16.gguf` | 467 MB |
| `neutts-nano-q8_0.gguf` | 253 MB |
| `neutts-nano-q6_k.gguf` | 245 MB |
| `neutts-nano-q5_k_m.gguf` | 217 MB |
| `neutts-nano-q5_k_s.gguf` | 214 MB |
| `neutts-nano-q5_1.gguf` | 216 MB |
| `neutts-nano-q5_0.gguf` | 209 MB |
| `neutts-nano-q4_k_m.gguf` | 210 MB |
| `neutts-nano-q4_k_s.gguf` | 205 MB |
| `neutts-nano-q4_1.gguf` | 202 MB |
| `neutts-nano-q4_0.gguf` | 194 MB |
| `neutts-nano-q3_k_l.gguf` | 200 MB |
| `neutts-nano-q3_k_m.gguf` | 196 MB |
| `neutts-nano-q3_k_s.gguf` | 190 MB |
| `neutts-nano-q2_k.gguf` | 190 MB |
### Codec-part (NeuCodec, `neucodec` arch, 65536 codebook, 24 kHz, 80 Hz token rate)
`codec[-<quant>].gguf`
| File | Size |
| ------------------- | ------- |
| `codec-f32.gguf` | 928 MB |
| `codec-f16.gguf` | 465 MB |
| `codec-q8_0.gguf` | 326 MB |
| `codec-q5_k_m.gguf` | 270 MB |
| `codec-q4_k_m.gguf` | 252 MB |
## Prompt format
The reference flow (from `neuphonic/neutts`):
```
user: Convert the text to speech:<|TEXT_PROMPT_START|>{ref_phones} {input_phones}<|TEXT_PROMPT_END|>
assistant:<|SPEECH_GENERATION_START|>{ref_codes_as_speech_tokens}
```
- `{ref_phones}` / `{input_phones}` — IPA-phonemized text (espeak-ng / phonemizer).
- `{ref_codes_as_speech_tokens}` — concatenation of `<|speech_N|>` strings for each NeuCodec token of a reference clip.
- Generation continues with more `<|speech_N|>` tokens until `<|SPEECH_GENERATION_END|>`.
Speech-token vocab range: `<|speech_0|>` = id 128262 … `<|speech_65535|>` = id 193797.
Stop token: `<|SPEECH_GENERATION_END|>` = id 128261.
## Notes
- Reference encoding (audio → speech tokens) needs the codec encode path.
- Phonemization isn't part of the GGUF — apply espeak-ng (or equivalent) on the host before tokenizing prompts; raw English text will be off-distribution.
- Source weights: `neuphonic/neutts-nano` (LLM) and `neuphonic/neucodec` (codec).
|