ZONOS3-Mini: Open-source voice AI clones voices right in your browser

Startup Zyphra has released ZONOS3-Mini, a free text-to-speech model with only about 100 million active parameters. It clones voices from a short audio sample, gives you control down to individual words, and runs in the browser, on a laptop or on server GPUs. It's licensed under Apache 2.0. One caveat: every benchmark comes from Zyphra itself.

Model releases Try it yourself Nov 10, 2026 6 min read Source: MarkTechPost
Illustrative image, AI-generated

What's going on

US AI company Zyphra released ZONOS3-Mini on November 10, 2026. It's an open-source text-to-speech (TTS) model, meaning it turns written text into spoken audio, and it's built for real-time use directly on your own device. The model supports zero-shot voice cloning: it imitates a voice from a short audio sample without being trained on that specific voice first. You can also control pace, emotion and emphasis down to individual words.

The weights are released under the permissive Apache 2.0 license, so commercial use is allowed. According to MarkTechPost, the standout feature is its small size. ZONOS3-Mini runs in a browser tab, on a laptop or on a server GPU. Zyphra trained the model in 2.5 days on 112 NVIDIA H100 GPUs. Its predecessor, ZONOS2, had 8 billion parameters, which limited where it could be used.

How the model is built

ZONOS3-Mini is a mixture-of-experts (MoE) model. Picture a team of 64 specialists where only the two best-suited ones work on any given piece of text. That gives the model 800 million parameters in total, but only about 100 million are involved per token, which makes it fast and efficient. The model has a context of 32,768 positions and generates up to 10 minutes of audio per pass.

Zyphra rebuilt three parts of the stack:

  • New audio codec ZAC-1: A codec breaks audio down into compact building blocks the model can process, then reassembles them into sound. ZAC-1 replaces the Descript Audio Codec used previously. It works with just 15 tokens per second (15 Hz) and 10 codebooks of 4,096 entries each: one for meaning, nine for sound. Zyphra says this cuts the word error rate tenfold. A dedicated component (a causal iSTFT head) converts each chunk into 44.1 kHz audio as soon as it's generated. That's what makes streaming possible.
  • Hybrid backbone: 11 layers with a model width of 1,024. Nine are "Gated DeltaNet" layers, an efficient alternative to classic attention, and two are global attention layers – a 3:1 ratio.
  • New speaker encoder MECT-B2: It replaces the encoder from Qwen3-TTS. You can feed it a raw reference clip of up to 60 seconds or a ready-made voice profile of 192 numbers (a speaker embedding).

After pretraining came two rounds of fine-tuning with DPO and GRPO. These methods let the model learn from comparisons between good and bad outputs, making it more robust.

Word-level voice control

Control works on two levels. The voice's identity – age, gender, accent and timbre – is set via voice profile vectors and accent vectors. The delivery – pace, emotion, volume or projection, and liveliness – is handled through activation steering. This shifts the model's internal signals during generation, a bit like turning knobs on a mixing desk while the song is playing. Dedicated "alignment heads" make sure this steering lands precisely on specific words, even while streaming. There's also a separate editing model based on the VoiceCraft recipe that lets you change sentences after the fact without regenerating everything.

Benchmarks: on top, but self-measured

Zyphra built its own benchmark for the evaluation, called ZTTS2-Eval. It covers clean read speech in 35 languages and real-world recordings in 20 languages. A "Capability Index" combines 420 test items into a single score using a statistical method (item response theory).

ZONOS3-Mini Fish Audio S2 Pro MOSS-TTS v1.5 Qwen3-TTS 1.7B
Total parameters 800M 5B 8B 1.7B
Active parameters ~100M n/a n/a n/a
License Apache 2.0 Research license (commercial separately) Apache 2.0 Apache 2.0
Capability Index* 66.2 61.7 60.2 37.7
Word error rate, clean* (lower = better) 7.79 11.06 11.01 25.55
Speaker similarity* 83.4 81.2 82.9 69.6
Audio quality MSR-UTMOS* 3.07 3.16 3.04 3.54

*All scores from Zyphra's own ZTTS2-Eval, ZONOS3-Mini in voice profile mode.

MarkTechPost points out some significant caveats. Zyphra built and ran the benchmark itself, and there's no independent verification. If you give the model a raw reference clip instead of a ready-made voice profile, it drops to 44.7 points. On pure audio quality, Fish S2 Pro and especially Qwen3-TTS come out ahead. There's no official list of supported languages; testing covered 35 languages.

Speed and deployment options

On a single H100, the median time to first audio – the wait until you hear the first sound – is 80 milliseconds with eight concurrent requests. Peak throughput is 457 seconds of audio per second of compute. In the browser, it takes under 150 milliseconds on an M3 MacBook Air and under 570 milliseconds on a Pixel 9 smartphone. Competitors' latency figures were measured on different GPUs, so they aren't directly comparable.

According to the GitHub repository, there are four official options:

  • Browser: a WebGPU playground that runs entirely on your own GPU, with no installation and no server.
  • NVIDIA servers: SGLang-Omni provides an OpenAI-compatible /v1/audio/speech endpoint with streaming.
  • Native: an MLX server for Apple Silicon Macs plus a C++/ggml server with a command-line tool for CPU, CUDA, Metal or Vulkan.
  • Hosted: Zyphra Cloud on NVIDIA H200 GPUs.

What you need to try it

The barrier to entry is very low. The easiest route is the browser playground. All you need is an up-to-date browser with WebGPU support and a reasonably modern device – even a smartphone like the Pixel 9 works, albeit with a noticeable delay. For local use, with about 100 million active and 800 million total parameters, a GPU with around 2 GB of VRAM should do. That's a rough estimate; the source gives no official minimum requirements. On Macs with Apple chips, the model runs via MLX. With ggml it also works without a GPU on the CPU alone, just more slowly. Disk space should be in the low gigabytes. For servers handling many simultaneous users, SGLang-Omni on NVIDIA GPUs is the intended option.

The bigger picture

ZONOS3-Mini is a notable step for open speech synthesis. A model with just 100 million active parameters is said to hold its own against competitors five to ten times larger. Add a genuine open-source license and official in-browser support, which, according to MarkTechPost, none of the compared models offer. That makes it interesting for developers of voice assistants, read-aloud apps, games and accessibility tools who want to avoid the cloud and ongoing costs. Fish Audio S2 Pro, by contrast, supports more than 80 languages but needs a separate license for commercial use.

The big caveat: all the top scores come from Zyphra's own benchmark, and independent listening tests are still missing. Cloning from a raw audio sample – the obvious route for most users – performs much worse than voice profile mode. And as with any voice cloning tool: only replicate someone else's voice with their consent.

Sources

#text-to-speech#voice cloning#open source#zyphra#mixture-of-experts
Read the original source

Try it yourself: ZONOS3-Mini

Explained step by step, no prior knowledge needed – on your own computer or free in your browser.

What can I do with it?

ZONOS3-Mini reads any text aloud in a natural-sounding voice, in real time, right on your device. Give it an audio sample of up to 60 seconds or a ready-made voice profile and it imitates that voice – no training required. You can control pace, emotion, volume and liveliness even for individual words, and age, gender and accent via voice profiles. Each pass produces up to 10 minutes of audio, and output can be streamed so the first sound arrives almost instantly. According to Zyphra's own benchmark, the model beats much larger open models like Fish Audio S2 Pro and MOSS-TTS on intelligibility and speaker similarity. On pure audio quality, though, Qwen3-TTS does better. Results with a raw reference clip are noticeably weaker than with a voice profile. There's no official language list; Zyphra tested 35 languages.

Who is it worth it for?

Ideal for tinkerers, app developers, podcasters, game developers and anyone looking for a free, locally running read-aloud voice without a cloud subscription. Thanks to the Apache 2.0 license, it also works for commercial products. If you need the very best audio quality or guaranteed support for lots of languages, test alternatives like Qwen3-TTS or Fish Audio as well.

Ideas: What you can do with it

Audiobook for the kids

Type in a bedtime story you wrote yourself and have it read in a calm, warm voice. Since each pass can produce up to 10 minutes of audio, a whole story fits. With her consent, you could even use Grandma's voice from a short recording.

Voice your podcast intro

Write a short intro and have it delivered in an energetic, lively voice. Use word-level control to emphasize specific words like your podcast's name. You get an audio file you can drop straight into your editing software.

Local voice assistant

Connect ZONOS3-Mini to a local language model and speech recognition so your assistant responds completely offline. Streaming and a short time to first audio keep the conversation feeling smooth.

Give your game characters a voice

Create distinct voice profiles for the characters in your indie game, with different ages, accents and temperaments. Thanks to the Apache 2.0 license, you can use the voices in a commercial game too.

Accessible read-aloud feature

Build the browser playground approach into a website so articles are read aloud directly on visitors' devices. There are no server costs, and no text ever leaves the computer.

Multilingual learning material

Have vocabulary lists or practice sentences read aloud in different languages – slowly and clearly for beginners, for example. Check how good each language sounds, since there's no official language list.

Download0.8 GB (about 1 min at 100 Mbit/s)
Licenseapache-2.0
TypeSpeech output (text to speech)
Hugging FaceZyphra/ZONOS3-Mini

What your computer needs

Graphics card (NVIDIA) at least 6 GB VRAMZyphra doesn't give a VRAM figure. The 6 GB is therefore calculated and only a rough guideline: the speech model model.pth (1.77 GB, bf16) and the audio codec in GGUF form (zac.gguf, 2.2 GB) add up to about 4 GB, multiplied by 1.2 plus a 1 GB buffer. More memory mainly buys you more concurrent requests and longer texts.
Mac (Apple Silicon M1–M5) from 16 GB unified memoryThe GPU and CPU share the memory – the model can use about 70% of it
Storage approx. 2.8 GB freeModel download plus programs

There's one model size: 800 million total parameters, about 100 million of them active. The easiest way to start is the WebGPU playground in your browser, with no installation at all. On Apple Silicon Macs, the MLX server is the way to go. On Windows and Linux PCs, use the C++/ggml server or the command-line tool (CPU, CUDA, Vulkan). For servers with many concurrent users on NVIDIA GPUs, SGLang-Omni with its OpenAI-compatible endpoint is the intended option.

  • In the browser via WebGPU: under 150 ms to first audio on an M3 MacBook Air, under 570 ms on a Pixel 9.
  • On an NVIDIA H100: 80 ms to first audio on average with 8 concurrent requests, peak throughput of 457 seconds of audio per second.
  • As a rough estimate, about 2 GB of VRAM (video memory) should be enough. The source gives no official minimum requirements.
  • Via ggml, the model also runs on CPU only, as well as with CUDA, Metal or Vulkan.
  • Apple Silicon Macs are supported through a dedicated MLX server.
  • Long outputs of up to 10 minutes or 32,768 positions need more memory than short sentences.
How do I find out what my computer has?
  • Windows: Press Ctrl + Shift + Esc → Task Manager → Performance tab → click GPU on the left. At the bottom you'll see Dedicated GPU memory (that's your VRAM). You'll find system memory under Memory.
  • Mac: Apple menu at the top left → About This Mac. You'll see your chip (e.g. M2) and memory (e.g. 16 GB). On Apple chips, graphics and processor share this memory.
  • Linux: Type nvidia-smi in the terminal (shows your graphics card and its memory) and free -h for system memory.

Guide

This model runs with its developers' own program (sgl-project/sglang-omni on GitHub). The commands below come from the Model Card and the developers' instructions.

Windows 10 / 11

Windows 10 / 11: supported. On Windows, the easiest way to run ZONOS3-Mini is in the browser via WebGPU. WebGPU means the browser computes directly on your graphics card, so you don't need to install anything. The source only describes the SGLang server for NVIDIA GPUs and doesn't mention Windows. You can try the Linux instructions under WSL2 (Linux inside Windows), but that's untested.

  1. Check the requirements. You need an up-to-date browser that supports WebGPU, such as Chrome or Edge. Keep your graphics driver up to date. On your first visit, the page downloads the model, so you need a stable internet connection.
  2. Open the Lite page. Open this address in your browser. Lite is the fast version for voice cloning. Voice cloning means the model speaks in a voice you provide.
    https://zyphra.com/zonos3-mini/localplayground/lite
  3. Let the model load. On your first visit, the page downloads the model. This can take a few minutes. The browser then caches the model, so later visits are faster. Keep the page open until loading is finished.
  4. Choose a voice. Pick one of the ready-made voices. You can also upload your own recording or record something directly with your microphone. For your own voice, a few seconds of clearly spoken audio without background noise is enough.
  5. Enter text and let it speak. Type a short sentence, such as the example sentence from the Model Card. Then start the speech output. If you hear the voice, everything worked.
    Hello from ZONOS3-Mini!
  6. Try the full studio. Want more options? Open the Zonos Voice Studio. There you can design characters, for example by age, accent and voice timbre, and also control emotion and pace.
    https://zyphra.com/zonos3-mini/localplayground#cast
  7. Result. You hear text spoken by ZONOS3-Mini: in the browser directly on the web page, on Linux as the file output.wav in the current folder.

macOS

macOS: supported. On a Mac, ZONOS3-Mini runs in the browser via WebGPU with no installation. Zyphra's GitHub repo also includes an MLX server for Apple Silicon (M1 and later), but the source doesn't list the commands for it. On the Mac, SGLang-Omni only supports other models experimentally.

  1. Check the requirements. Ideally you have a Mac with an Apple chip (M1 or later) and an up-to-date browser that supports WebGPU, such as Chrome or a current version of Safari. WebGPU means the browser computes directly on your Mac's graphics hardware. The model is downloaded on your first visit, so you need a stable internet connection.
  2. Open the Lite page. Open this address in your browser. Lite is the fast version for voice cloning. Voice cloning means the model speaks in a voice you provide.
    https://zyphra.com/zonos3-mini/localplayground/lite
  3. Let the model load. On your first visit, the page downloads the model. This can take a few minutes. The browser then caches the model, so later visits are faster.
  4. Choose a voice. Pick a ready-made voice, upload your own recording or record something directly with your microphone. A few seconds of clear speech without background noise is enough.
  5. Enter text and let it speak. Type a short sentence, such as the example sentence from the Model Card. Start the speech output. If you hear the voice, everything worked.
    Hello from ZONOS3-Mini!
  6. Try the full studio. In the Zonos Voice Studio you can design characters, for example by age, accent and voice timbre, and control emotion and pace.
    https://zyphra.com/zonos3-mini/localplayground#cast
  7. Result. You hear text spoken by ZONOS3-Mini: in the browser directly on the web page, on Linux as the file output.wav in the current folder.

Linux

Linux: supported. On Linux with an NVIDIA graphics card, SGLang-Omni (CUDA backend) serves the model as a local server. Without an NVIDIA card, just use the browser version at zyphra.com/zonos3-mini/localplayground/lite. Zyphra's GitHub repo also includes a C++/ggml server that runs on the CPU or with Vulkan, but the source doesn't list the commands for it.

  1. Check the requirements. You need an NVIDIA graphics card with a current driver, a recent Python 3 and the curl tool. The exact Python version is listed in the SGLang-Omni installation guide. Also plan for a few GB of free disk space for the model. Use nvidia-smi to check whether the driver recognizes your card.
    nvidia-smi
    python3 --version
  2. Create a folder and environment. Create a dedicated folder with a virtual environment inside it. A virtual environment is a separate space for Python packages so nothing gets mixed up with the rest of your system. Once activated, you'll see (.venv) in front of your prompt.
    mkdir zonos3 && cd zonos3
    python3 -m venv .venv
    source .venv/bin/activate
  3. Get the uv installer. SGLang-Omni is installed with uv, a fast package installer for Python. You get it once via pip.
    pip install uv
  4. Install SGLang-Omni. This command comes straight from the SGLang-Omni instructions. The --prerelease=allow option permits pre-release versions the package needs. Installation takes a while and downloads lots of packages.
    uv pip install --prerelease=allow "sglang-omni==0.2.0"
  5. Start the server. Start the server with ZONOS3-Mini on port 8000. On first launch, it automatically downloads the model from Hugging Face, which can take a while depending on your connection. Leave this terminal window open afterwards.
    sgl-omni serve --model-path Zyphra/ZONOS3-Mini --port 8000
  6. Check whether the server is ready. Open a second terminal and ask the server how it's doing. If the response says "healthy", it's ready. Otherwise, wait a moment and try again.
    curl http://localhost:8000/health
  7. Generate your first speech output. Send a sentence to the server. It speaks it in the default voice and saves the result as output.wav.
    curl -X POST http://localhost:8000/v1/audio/speech -H "Content-Type: application/json" -d '{"input": "Hello from ZONOS3-Mini!"}' --output output.wav
  8. Listen to the result. Open output.wav in any audio player. If the file is very small or silent, check the first terminal for error messages.
    ls -lh output.wav
  9. Result. You hear text spoken by ZONOS3-Mini: in the browser directly on the web page, on Linux as the file output.wav in the current folder.

What to do after your first result

  • Clone a voice: add "references": [{"audio_path": "<path to recording>"}] to the request. A short, clean speech recording is enough – no transcript needed.
  • Streaming: with "stream": true and "response_format": "pcm", the 44.1 kHz audio arrives while it's still being generated. Streaming means you hear the first words before the whole sentence is done.
  • The ZONOS3 cookbook from SGLang-Omni explains voice cloning, streaming and the sampling options for generation. In the Hugging Face repo under gguf/voices/ you'll find 27 ready-made voices, sorted by language.
  • For zero installation, use the Zonos Voice Studio in your browser. There you can control age, accent, emotion and pace, down to individual words.

Try it

Good morning! It's going to be sunny today with highs of 22 degrees, but take a jacket anyway.
Welcome to episode 12 of our podcast – today we're talking about the history of the bicycle.
I can't believe it… we actually won! (cheerful, lively, with emphasis on "won")
Attention, please speak slowly and clearly: Today only, the train to Hamburg departs from platform 7.
Once upon a time there was a little dragon who was afraid of the dark. Every night he lit a tiny flame … (told calmly, in a whisper)

Tips for better results

  • Use clean reference recordings without reverb or background noise. For long-term use, it's worth turning them into a fixed voice profile (192-dimensional embedding).
  • Use word-level control sparingly: a few emphasized words sound more natural than an exaggerated tone throughout.
  • For voice assistants, use streaming mode. The first sound arrives almost immediately instead of you waiting for the whole text.
  • You don't need to regenerate everything over minor slips: the separate editing model can change sentences after the fact.
  • If you already have software built for the OpenAI audio API, you can switch it to ZONOS3-Mini with little effort via the SGLang-Omni endpoint /v1/audio/speech.

If something goes wrong

The browser playground requires WebGPU. Older browsers or disabled GPU acceleration will stop it from starting – update your browser or use a Chromium-based one.

Cloning with a raw reference clip produces much worse results (index 44.7 instead of 66.2) than voice profile mode (speaker embedding). For the best quality, use the embedding method.

Reference clips can be no longer than 60 seconds.

There's no official language list. Test for yourself whether German sounds as good as English.

All the top scores come from Zyphra's own benchmark. Don't automatically expect it to sound better than Qwen3-TTS, which leads on audio quality.

Only clone someone else's voice with their consent. It's legally and ethically sensitive.

“out of memory,” a crash, or your computer freezes

The model is too big for your VRAM (video memory). Pick a smaller variant from the table above and close other programs, especially games and browsers with lots of tabs.

It runs, but extremely slowly

Your CPU is probably doing the work instead of your graphics card. In Ollama, the PROCESSOR column of ollama ps shows how much runs on the GPU. If it says "100% CPU", update your graphics driver or pick a smaller variant that fits entirely into VRAM (video memory).

“ollama” or “python” is not found

Close the terminal window and open it again so it recognizes the newly installed program. For Python on Windows: reinstall it and check Add python.exe to PATH.

Windows: "Running scripts is disabled on this system"

Run the script with exactly the command above: powershell -ExecutionPolicy Bypass -File try_windows.ps1. This allows execution for this one time only.

Error message when loading the model (version, "trust_remote_code", unknown architecture)

Brand-new models often need the latest software version. With Ollama: update Ollama. With Python: pip install -U transformers in the activated environment. The Model Card usually lists the exact version.

Tokenstrom generates the scripts and notebook automatically. Please take a quick look before running them – they're plain, readable text. Mind the model's license: apache-2.0.

Ask the AI assistant

Questions about this article, installation or background? Our assistant knows this page and runs on our own machine, not in someone else's cloud.

Connecting …

The Assistant is an AI (Gemma 4) and can make mistakes – please check important details against the source. Questions are used only to generate an answer and are deleted after one hour. Please don't enter any personal data.

Comments

What do you think? Already tried it? Write it here, no sign-up needed.

  1. Loading comments …

Comments are public. Links aren't allowed, and we delete abusive posts. You can delete your own comment at any time in this browser. Learn more in the Privacy Policy.