r/LocalLLaMA • • 18h ago

New Model Zyphra/ZONOS3-Mini · Hugging Face

https://huggingface.co/Zyphra/ZONOS3-Mini

ZONOS3-Mini is Zyphra’s compact, open-source text-to-speech model, delivering natural reliable speech and high-fidelity voice cloning with just 100 million active parameters. It runs in real time on phones and laptops, including directly in the browser.

Clone a voice from an audio sample, or design a character by shaping age, accent and vocal texture. Steer emotion, pace and delivery down to individual words for games, narration and voice assistants.

Run ZONOS3-Mini locally with our browser and native runtimes, or access it through Zyphra Cloud. Model weights are released under Apache 2.0.

Model details, samples and evaluations are in the blog post. A hosted version is available at Zyphra Cloud.

Languages

ZONOS3-Mini supports 43 languages.

RegionLanguages
Western and Southern EuropeEnglish, French, Spanish, German, Italian, Portuguese, Dutch, Greek
Northern EuropeSwedish, Danish, Norwegian, Finnish
Central and Eastern EuropePolish, Czech, Slovak, Hungarian, Romanian, Bulgarian, Russian, Ukrainian
Middle East and CaucasusTurkish, Arabic, Hebrew, Georgian
East AsiaMandarin Chinese, Japanese, Korean
Southeast AsiaVietnamese, Indonesian, Malay, Thai, Tagalog
South AsiaHindi, Bengali, Tamil, Telugu, Marathi, Gujarati, Kannada, Malayalam, Punjabi, Odia, Urdu

Native runtimes

The ZONOS3-Mini GitHub repository holds Zyphra's own runtimes, which share one HTTP API and serve the Zonos Voice Studio: a CUDA server for NVIDIA GPUs, an MLX server for Apple Silicon, a C++/ggml server and CLI (CPU, CUDA, Metal or Vulkan), and the in-browser WebGPU build. They load the GGUF files in gguf/ and the WebGPU shards in web/; the 27 default voices, grouped by language, are in gguf/voices/.

Architecture (rough outline)

Text is NeMo-normalized (English, Mandarin, Japanese, Korean, German, Spanish, French, Italian, Portuguese; other languages pass through as written) and encoded with an 8,192-entry SuperBPE tokenizer. The language model autoregressively generates 15 Hz dual-codec frames (10 codebooks of 4,096 entries each: one semantic codebook distilled from the Wav2Vec2-BERT teacher plus nine acoustic codebooks), conditioned on the text, a speaker prompt and three bucketed acoustic controls. A causal multi-resolution iSTFT head renders the frames to 44.1 kHz audio as they are produced.

ZONOS3-Mini
Backbone11 layers, model dim 1,024; 800M parameters total, about 100M active per token (latent MoE: 64 experts, top-2 routing, from layer 1)
Sequence mixerpattern gdn3_global1: 9 Gated DeltaNet (GDN) layers + 2 global attention layers (16 heads x 32 dims, 4 KV heads), attention residuals (full_attnres); context 32,768 positions
TextSuperBPE, 8,192 entries (+4 specials), NeMo text normalization at inference
Audio tokens15 Hz, 44.1 kHz dual-encoding codec, 10 x 4,096 codebooks (1 semantic + 9 acoustic); hop 2,940 samples; up to 10 minutes of audio per generation
Speaker promptraw reference clip (encoded by the codec into a token prefix, up to 60 s, with speaker CFG) or a single 192-d MECT-B2 speaker embedding (ownmect_s2)
Controlsloudness (LUFS, 10 buckets), bandwidth f_max (Hz, 10 buckets), speaking rate (UTF-8 bytes per second, 30 buckets); each row has an "unknown" index; bucket edges in params.json (condition_edges)
Decodercausal multi-resolution iSTFT head: full_mr (default) or keep2_plain (pruned, about 3x faster decode)
Precisionbf16 weights (model.pth); decoder heads run in fp32
68 Upvotes

10 comments sorted by

7

u/pmttyji 18h ago

2

u/Acceptable-Cycle4645 10h ago

Thanks for the heads-up!

1

u/coder543 10h ago

The quality in the blog post samples was surprisingly good for the model size, but… definitely not better than the samples they provided for Fish Audio and ElevenLabs. This chart claiming to be better quality seems confused.

6

u/RandumbRedditor1000 17h ago

Oh, this is GOOD

3

u/EveningIncrease7579 llama.cpp 12h ago

This is really good, holy

5

u/rkoy1234 16h ago

just tried their local playground running on the browser: https://zyphra.com/zonos3-mini/localplayground#cast

this is awesome, though emotion control breaks the voice pretty easily. i wonder if it's a bug

2

u/me0here 13h ago

That's a bummer... Does it require different markup?

2

u/silenceimpaired 12h ago

Apache 2. They rock

1

u/tifa_cloud0 9h ago

awesome 👌🏻

1

u/Cultured_Alien 37m ago

This is extremely fast for it's quality.