Review

ZeroTTS on Mac: Vietnamese TTS Review and Setup

An evidence-based ZeroTTS Mac review covering Vietnamese speech, ONNX CPU streaming, presets, the missing local cloning encoder, licenses, and fit.

·6 min read

Direct answer: ZeroTTS is a new MIT-licensed Vietnamese text-to-speech package designed for local ONNX CPU inference. Its published runtime is roughly 900 MB, does not require PyTorch for synthesis, offers streaming, and ships eight preset voice embeddings. It is a credible Mac evaluation candidate because ONNX Runtime works on CPU and the project also provides a browser path. However, the current public release cannot create a new cloned voice from your recording. Its repository states that the voice encoder is not published. You can load a speaker-latent file obtained elsewhere, but there is no local command that turns a reference clip into that file. That distinction should drive the buying decision.

Quick decision table

NeedZeroTTS todayDecision
Vietnamese preset narrationEight included voicesStrong reason to test
CPU streamingOfficial ONNX pathUseful for local playback
Clone from your own WAV on MacEncoder not publishedSkip if fully local cloning is required
English-only narrationVietnamese-first with code switchingChoose another general model
Simple production workflowCLI, Python, web UI, browser demoA managed app may reduce setup work

What was released

ZeroTTS v0.1.0 arrived on August 18, 2026. Version 0.1.1 followed minutes later and the release notes say it changed only PyPI presentation, not the library, CLI, or weights. The system is Vietnamese-first and includes normalization for dates, times, numbers, and acronyms. The authors report 202 million parameters, 48 kHz output, about 0.86 GB of FP32 weights, and a streaming path. Those are project-reported results, not measurements from this review.

Installation is intentionally small: the project lists NumPy, ONNX Runtime, tokenizers, Hugging Face Hub, SoundFile, and SciPy, with PyTorch reserved for optional evaluation tools. The model downloads on first use and is cached. A Gradio interface is available, and the JavaScript folder demonstrates client-side ONNX Runtime Web. For a broader survey of offline options, see the local TTS models for Mac guide.

A safe Mac evaluation workflow

Create a dedicated Python environment and install the released zerotts package from PyPI. Run the voice-list command before generating anything. Then synthesize one short Vietnamese sentence with the default preset and save it as WAV. This verifies package installation, model download, cache access, ONNX execution, and file writing. Do not begin with the web interface because a browser adds another layer when troubleshooting.

Next, test the project's separate Vietnamese text normalizer. The README explains that synthesize() does not apply normalization automatically, while the CLI and web interface do by default. This can make a direct Python result differ from a CLI result even when both use the same voice. Include dates, prices, abbreviations, and code-switched English in your test. Record whether the exact words are correct rather than relying on a natural-sounding cadence.

Understand the voice boundary

A ZeroTTS voice is stored as a small array of speaker latents. The public weights include eight named presets with descriptive tags. The README says the missing encoder can derive latents from a short reference clip, but that encoder is not in the repository. Therefore, a private offline Mac workflow can use the bundled voices without uploading speech, but it cannot locally enroll a new person from audio using only the released package. If cloning is the requirement, compare the private voice cloning guide before choosing a tool.

Do not hide this limitation behind the phrase zero-shot. Architecture and product availability are different. A service might return a latent file that then runs locally, but the original audio has already crossed a separate boundary. Ask where enrollment happens, how long the clip is retained, who can retrieve the latent, and whether deletion is available. For sensitive client speech, that can matter more than raw model speed.

How to evaluate the published claims

The authors publish strong Vietnamese word-error, naturalness, latency, and CPU results on their ZeroBench-TTS benchmark. Treat them as transparent project evidence, not an independent Mac benchmark. Reproduce a small, relevant slice on your own hardware. Record the Mac model, unified memory, macOS version, Python and ONNX Runtime versions, thread count, cold startup, warm time to first audio, total synthesis time, and output length. Use the same normalized text for every competitor.

For long-form work, follow the repository's warning that the model is trained on utterances rather than paragraphs. Use its punctuation-aware chunking helpers and listen at every join. Check dead air, clipped final phones, sudden speaker shifts, and repeated fragments. The audiobook narration guide explains why segment recovery and consistent file naming are essential beyond the model demo.

License and practical limitations

The repository states that code and weights use MIT, while the bundled MOSS codec decoder uses Apache 2.0. The ZeroBench-TTS dataset is CC BY-NC 4.0, a restriction that applies to the benchmark dataset rather than the ZeroTTS runtime. Keep those assets separate in your compliance notes. Preset voices also deserve a source and usage review before a major commercial campaign, even when the model code is permissive.

  • Vietnamese is the primary language; English appears mainly in code-switching scenarios.
  • The public release cannot create a new speaker latent from reference audio.
  • FP32 browser weights require a large initial download and persistent storage.
  • Long paragraphs need segmentation because the model is trained on utterances.
  • Published performance is project-reported and not a universal Mac guarantee.
  • Text normalization behavior differs between direct Python synthesis and the CLI or web UI.

Use or skip verdict

Use ZeroTTS if Vietnamese is central, the included voices are acceptable, and you want a small no-PyTorch CPU runtime with streaming. It is particularly interesting for a local reader, kiosk, or developer prototype. Skip it if your must-have feature is enrolling a new speaker entirely offline on the Mac, or if you need multilingual production outside its focus. For creators comparing a complete workspace, read the AI voice generator for Mac guide. Murmur costs $49 one-time, has no free trial, and offers a 7-day refund policy.

Practical checklist

  1. Install ZeroTTS in a dedicated environment and record the package version.
  2. List and audition all eight included preset voices.
  3. Test direct Python synthesis and normalized CLI output separately.
  4. Measure warm streaming and full-file generation on your Mac.
  5. Use short utterances, then test punctuation-aware long-text joining.
  6. Treat custom voice enrollment as unavailable in the public local release.
  7. Archive the exact text, normalization, voice, settings, and WAV results.

Frequently asked questions

Sources

Choose a local workflow you can repeat

Murmur turns local voice generation into organized Mac projects, queues, history, and exports for $49 one-time.

macOS 15+ · Apple Silicon required · 7-day refund policy