Soprano 1.1 80M — GGUF
Soprano 1.1 80M: a tiny, fast English TTS with 32 kHz output.
Two files make one model, as with llama.cpp's multimodal projectors: the model file is the text-to-speech LM backbone, run by llama.cpp; the codec file holds the audio side (decoder / vocoder, speaker encoders and the adaptor between the two), run by codec.cpp. The runtimes below wire the two graphs together, on CPU or GPU (CUDA, Vulkan, Metal), fully offline.
This backbone needs the Soprano tokenizer, which upstream llama.cpp does not have yet: use the llama.cpp that codec.cpp or llama.rn builds (they carry the patch), not a stock llama.cpp.
Files
Every run needs one model file + one codec file from this repo.
--backbone |
--model (codec) |
Total | |
|---|---|---|---|
| Recommended | Soprano-1.1-80M.Q8_0.gguf |
codec-Q8_0.gguf |
118 MB |
| Smallest | Soprano-1.1-80M.Q4_K_M.gguf |
codec-Q4_K_M.gguf |
67 MB |
| Best quality | Soprano-1.1-80M.F16.gguf |
codec.gguf |
220 MB |
codec.gguf is F16. The model files need codec.cpp from 2026-10-20 or newer (they use its soprano tokenizer).
Other files
| File | Size |
|---|---|
Soprano-1.1-80M-soprano-tok.F16.gguf |
160 MB |
Soprano-1.1-80M-soprano-tok.Q2_K.gguf |
31 MB |
Soprano-1.1-80M-soprano-tok.Q3_K_M.gguf |
40 MB |
Soprano-1.1-80M-soprano-tok.Q4_K_M.gguf |
49 MB |
Soprano-1.1-80M-soprano-tok.Q5_K_M.gguf |
57 MB |
Soprano-1.1-80M-soprano-tok.Q6_K.gguf |
66 MB |
Soprano-1.1-80M-soprano-tok.Q8_0.gguf |
85 MB |
Soprano-1.1-80M.Q2_K.gguf |
31 MB |
Soprano-1.1-80M.Q3_K_M.gguf |
40 MB |
Soprano-1.1-80M.Q5_K_M.gguf |
57 MB |
Soprano-1.1-80M.Q6_K.gguf |
66 MB |
codec-F32.gguf |
121 MB |
codec-Q5_K_M.gguf |
21 MB |
Command line (codec.cpp)
With codec.cpp's tts-cli (build it; it bundles llama.cpp), then:
hf download BricksDisplay/Soprano-1.1-80M-GGUF Soprano-1.1-80M.Q8_0.gguf codec-Q8_0.gguf --local-dir Soprano-1.1-80M
./build/tts-cli synthesize --backbone Soprano-1.1-80M/Soprano-1.1-80M.Q8_0.gguf --model Soprano-1.1-80M/codec-Q8_0.gguf \
--text "The birch canoe slid on the smooth planks." --output out.wav
All tts-cli options (voices, voice cloning, sampling, GPU) are described in the codec.cpp README.
Python
The codec_cpp package runs the same pipeline (it builds codec.cpp with its
bundled llama.cpp, so it needs CMake and a C++ compiler):
pip install "codec-cpp @ git+https://github.com/mybigday/codec.cpp" huggingface_hub soundfile
import codec_cpp, soundfile
from huggingface_hub import hf_hub_download
tts = codec_cpp.TTS(hf_hub_download("BricksDisplay/Soprano-1.1-80M-GGUF", "Soprano-1.1-80M.Q8_0.gguf"),
hf_hub_download("BricksDisplay/Soprano-1.1-80M-GGUF", "codec-Q8_0.gguf"))
audio, sr = tts.synthesize("The birch canoe slid on the smooth planks.")
soundfile.write("out.wav", audio, sr)
tts.voices() lists the builtin voices; ref_audio= clones a voice where the
model supports it; tts.stream(text) yields audio as it is generated. More in
the Python docs.
React Native (llama.rn)
llama.rn loads the same two files on iOS and Android:
const ctx = await initLlama({ model: 'Soprano-1.1-80M.Q8_0.gguf', embedding: true })
await ctx.initVocoder({ path: 'codec-Q8_0.gguf' })
const { prompt, grammar, embedding, flow } = await ctx.getFormattedAudioCompletion({
prompt: 'Hello world',
})
const result = await ctx.completion({ prompt, grammar, embedding })
const pcm = flow === 'continuous_embd'
? await ctx.decodeAudioEmbeddings(result.embeddings, result.embedding_dim)
: await ctx.decodeAudioTokens(result.audio_tokens)
Voice cloning, saved voices and per-model notes: llama.rn TTS docs.
Input text
English, a sentence or two per run. Write numbers, dates and abbreviations out as words (upstream Soprano does this text cleanup before synthesis).
Sampling
The model files carry the recommended sampling as llama.cpp's
general.sampling.* metadata, the settings of the original inference code;
tts-cli, tts-server, llama.rn and any llama.cpp host apply them unless
you set your own.
| Setting | Value | tts-cli flag |
|---|---|---|
| temperature | 0 (greedy) | --temp 0.0 |
| top-k | 0 (off) | --top-k 0 |
| top-p | 0.95 | --top-p 0.95 |
| min-p | 0 (off) | --min-p 0.0 |
| repetition penalty | 1.2 | --repeat-penalty 1.2 |
| repetition window | -1 (all generated tokens) | --repeat-last-n -1 |
Greedy, as the original; the repetition penalty counts the prompt and the generated tokens.
Voices
Soprano has a single built-in voice; no voice selection or cloning.
License
apache-2.0, the same as the original model.
- Downloads last month
- 363
Model tree for BricksDisplay/Soprano-1.1-80M-GGUF
Base model
ekwek/Soprano-1.1-80M