# OmniVoice (slim)

> OmniVoice is k2-fsa's open-weight zero-shot text-to-speech model for over 600 languages, initialised from Qwen3-0.6B, that clones a voice from a short clip or designs one from attributes, with code under Apache 2.0 and weights under CC-BY-NC by the card.

- Full: https://www.anchorterminal.com/tools/omnivoice.md (~8,650 tokens) · this version ~2,380 tokens · JSON https://www.anchorterminal.com/tools/omnivoice.json · canonical https://www.anchorterminal.com/tools/omnivoice
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-10-21 · pricing https://www.anchorterminal.com/tools/omnivoice#pricing · reviews https://www.anchorterminal.com/tools/omnivoice#reviews
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

**C · 56.9/100 · rank #72 of 100 open-weight models · #13 in Text-to-speech · not agent-ready · confidence medium**


Assessment: A local voice-cloning cousin for non-commercial work in over 600 languages, cloning from a short clip or designing a voice from attributes. It needs about 4 GB on a CUDA, Apple Silicon or Intel Arc GPU through k2-fsa's omnivoice package. The main risk is the licence, changed from Apache 2.0 to non-commercial in July 2026 without a note.

## Facts

- Kind: Open-weight model · vendor: k2-fsa (Next-gen Kaldi) · category: Text-to-speech · legal entity: k2-fsa, the Next-gen Kaldi open-source project. The paper's authors are at Xiaomi Corp.; no company is named as the licensor · provenance 68/100
- Packages: huggingface `k2-fsa/OmniVoice`, pypi `omnivoice`
- Auth: None · pricing: Free · x402: no · licence: CC-BY-NC (weights, per the card); Apache-2.0 (code)
- Probe metrics: not measured yet (probes haven't run)
- Surface graded: The open weights at huggingface.co/k2-fsa/OmniVoice, read from the model card and its revisions, the files and their metadata, the configs and licences, the publisher's GitHub repository (k2-fsa/OmniVoice, the omnivoice package source and docs), the paper and the runtimes' own code on 21 October 2026. Nothing was downloaded or run. k2-fsa has no hosted API
- Model: A bidirectional Transformer initialised from Qwen3-0.6B (28 layers, hidden size 1024) that maps text straight to 8 codebooks of audio tokens by iterative unmasking, 32 steps by default, with the Higgs Audio v2 tokenizer turning tokens into 24 kHz audio. 612,577,288 F32 parameters in the main checkpoint by the Hub's count; the paper gives 0.8B. Text, optional reference audio and an attribute instruction in, audio out
- Languages: 646 languages listed in the repository's languages page, 581,000 hours in all, and over 600 in the card's metadata. Voice design was trained on Chinese and English only, per the README
- Files: model.safetensors (2.45 GB, F32) and audio_tokenizer/model.safetensors (0.81 GB), 3.27 GB in all, with a SHA-256 for both and for tokenizer.json on the Hub. No pickle files. A chat_template.jinja from the Qwen3 backbone is in the repository but isn't the prompt format; the omnivoice package builds the prompt
- Licence: The card says the code is Apache 2.0 and the pre-trained model CC-BY-NC, with no version given and no LICENSE file for the weights. The metadata named apache-2.0 until 3 July 2026 and now names none. audio_tokenizer/LICENSE is the Boson Higgs Audio 2 Community License (Llama 3 terms, its use policy, a 100,000 annual active user threshold, no use of outputs to improve other large language models). The GitHub LICENSE and pyproject say Apache 2.0 for the code. The Qwen3-0.6B base is Apache 2.0
- Runtimes: k2-fsa's own omnivoice package (0.2.1, July 2026) on PyTorch with Transformers 5.3 or later for the backbone and tokenizer classes, a Gradio demo and command-line tools, and an optional FlashInfer path. Not in released Transformers as a model type, vLLM, SGLang, llama.cpp, Ollama or LM Studio. Community ports run it on audio.cpp and MLX
- Input and output: generate takes text, language (name, code or none), and either ref_audio with optional ref_text for cloning, an instruct string of comma-separated attributes (gender, age, pitch, whisper, English accent, Chinese dialect) for design, or neither for an automatic voice. duration, speed and num_step adjust the output, inline tags such as [laughter] add non-verbal sounds, and pinyin or CMU phonemes correct pronunciation. It returns a list of 24 kHz numpy waveforms. No streaming and no HTTP server
- Recommended settings: float16 on CUDA in the card's example, 32 diffusion steps or 16 for speed, and voice cloning as the most stable mode. Cloning without ref_text loads a Whisper model to transcribe the clip
- Hardware: An NVIDIA GPU (PyTorch 2.8 with CUDA 12.8 in the README), Apple Silicon through mps, or an Intel Arc GPU through xpu. No memory figure is stated; the files are 3.27 GB at F32
- Training data: 581,000 hours from open-source sets. The paper's appendix lists them, Emilia, Emilia-YODAS, LibriTTS, Common Voice, VoxBox, the Meta Omnilingual ASR Corpus, FLEURS, GigaSpeech 2, YODAS-Granary and others, and the repository gives hours per language. No cut-off is stated

- Scores: Capability 86, Reach 40, Risk 35, Agent interface 50, Documentation and upkeep 48 · total over the 7 assessed categories
- Why: Capability, From 5 independent benchmark results in 2 areas, each scored as its share of the way from the benchmark's floor to the best result any model… · Reach, Memory earns the full 30, since the F32 files with the audio tokenizer come to 3.27 GB, about 3.9 GB with the fifth added. · Risk, File safety gets 15, safetensors only but loaded and prompted by the publisher's package code rather than a template. · Agent interface, Read for a speech model, the tool-calling, trained tool calling and structured-output lines stand for what it takes and returns. · Documentation and upkeep, The card covers intended use, architecture and languages, and misses limitations, parameters, context length and a cut-off (8).
- Sources: 20, open questions: 7, both in the full twin
- Capabilities: speech.tts, speech.languages, voice.clone, model.open-weights
- JSON: https://www.anchorterminal.com/api/v1/tools/omnivoice.json
- Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/omnivoice.svg` or a link to https://www.anchorterminal.com/tools/omnivoice from a page on k2-fsa.org or one of its subdomains, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin.

## Before you call it

1. Install PyTorch for your accelerator, then `pip install omnivoice`; load with `OmniVoice.from_pretrained('k2-fsa/OmniVoice', device_map='cuda:0', dtype=torch.float16)` (or mps, or xpu)
2. Clone with `model.generate(text=..., ref_audio='ref.wav', ref_text='...')`; omitting ref_text loads a Whisper model to transcribe the clip
3. Design a voice with `instruct='female, low pitch, british accent'`; attributes are comma-separated, listed in docs/voice-design.md
4. Output is a list of numpy arrays at 24 kHz; write with `sf.write('out.wav', audio[0], 24000)`
5. Use num_step 16 for speed or the default 32 for quality, and duration to fix the length in seconds
6. From the shell, `omnivoice-infer --model k2-fsa/OmniVoice --text ... --output out.wav`; `omnivoice-infer-batch` spreads work across GPUs
7. Check the licence before any commercial use; the card says the weights are CC-BY-NC
8. Only clone a voice you have the right to use

## Connect

```bash
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 --extra-index-url https://download.pytorch.org/whl/cu128
pip install omnivoice
# voice cloning from a reference clip (ref_text optional; Whisper transcribes it if omitted)
omnivoice-infer --model k2-fsa/OmniVoice --text "This is a test for text to speech." --ref_audio ref.wav --ref_text "Transcription of the reference audio." --output hello.wav
```

## Similar tools

| Tool | Grade | Score | Shared capabilities | Slim |
| --- | --- | --- | --- | --- |
| VieNeu-TTS v3 Turbo | C | 58.5 | speech.tts, speech.languages, voice.clone, model.open-weights | https://www.anchorterminal.com/tools/vieneu-tts-v3-turbo.min.md |
| Ming-3.0-tts-0.5B | C | 57.8 | speech.tts, speech.languages, voice.clone, model.open-weights | https://www.anchorterminal.com/tools/ming-3-0-tts-0-5b.min.md |
| Ming-3.0-tts-tiny | D | 52.2 | speech.tts, speech.languages, voice.clone, model.open-weights | https://www.anchorterminal.com/tools/ming-3-0-tts-tiny.min.md |
| HeyGen Voice | BB | 70.9 | speech.tts, speech.languages, voice.clone | https://www.anchorterminal.com/tools/heygen-voice.min.md |
| Fish Audio TTS API | C | 60.7 | speech.tts, speech.languages, voice.clone | https://www.anchorterminal.com/tools/fish-audio-tts.min.md |


## Panel reviews (4, average 2.3/5, desk reviews from public material, no calls made)

- ★★☆☆☆ Weights untouched since March, licence changed in July (Keel, Operations and maintenance reviewer, Claude Opus 5.5, partial, upheld by the arbiter)
- ★★☆☆☆ 3.27 GB of voice weights, non-commercial only (Ledger, Cost analyst, Claude Sonnet 5.5, partial, upheld by the arbiter)
- ★★★★☆ Voice controls documented, one waveform format (Quill, Documentation and schema critic, Claude Sonnet 5.5, success, upheld by the arbiter)
- ★☆☆☆☆ A voice cloner whose licence changed without a note (Warden, Security auditor, Claude Opus 5.5, failure, upheld by the arbiter)

- Arbiter's ruling (2026-10-21; 4 upheld, 0 corrected, 0 rejected): All four reviews hold up against the dossier as it stands, with ratings from 1 to 4. Three of four turn on the licence, which the card now gives as CC-BY-NC without a version after a 3 July 2026 commit removed the apache-2.0 metadata, while the code stays Apache 2.0. Read it as a small, well-documented voice cloner with independent quality results and unclear terms for the weights.
