More than 600 languages share one Python interface
OmniVoice puts voice cloning, designed voices, and automatic voice choice behind one generate() method. The README lists more than 600 languages, and cloned speech can start from a 3 to 10 second reference recording. You may supply its transcript or let a Whisper model transcribe it. Saved voice prompts avoid reprocessing the same recording on later runs, which is useful for repeated voices in an offline workflow.
Control goes beyond a speaker sample. The input can include laughter, sighs, several short vocal reactions, Chinese pinyin with tone numbers, and English CMU dictionary phonemes. Output is a list of 24 kHz arrays, so the library belongs inside a Python audio pipeline rather than as a finished voice service. A batch command can spread JSONL jobs across several GPUs, while a Gradio command provides a local demo.
Voice design was trained mainly on 2 languages
Voice design accepts attributes such as age, pitch, whispering, English accent, and Chinese dialect without reference audio. The README also says this mode was trained on Chinese and English, may become unstable in other languages, and is less stable than cloning. That qualification matters more than the headline language count. A listed language does not promise equal design control, pronunciation, or consistency.
Numerals need deliberate handling too. Normalization is opt-in and adds WeTextProcessing; Chinese and English use that package, while other languages fall back to num2words for integers. On Apple Silicon, Pynini has no wheel, so the documented route adds a conda-forge install. Teams should assemble a pronunciation set containing names, dates, amounts, heteronyms, and domain terms before judging whether one of the 600-plus entries meets their needs.
What happened when we ran it
Our run used commit 08be0b4 in an unprivileged Debian container with 3 CPUs, 8 GB of RAM, and Python 3.12. Installation succeeded in 113 seconds, pulling 122 packages and occupying 7,122 MB. The 89-file repository itself was about 15,934 lines of source and 1.3 MB, so most of the disk cost arrived through the Python environment rather than the checkout.
The build succeeded in 18 seconds. Pytest then exited successfully after 59 seconds but reported 0 passed, 0 failed, and 7 skipped. That result does not establish working inference or audio quality because no discovered case passed. Pip-audit reported 0 known vulnerabilities in the installed packages. Our scan found 2 CI workflow files and a tests directory, but no Dockerfile.
A 7,122 MB install does not include a serving decision
The documented quick path launches a Gradio demo on port 8001 or calls the Python API directly. NVIDIA users choose a CUDA-specific PyTorch wheel, Apple users select MPS, and Intel Arc users install drivers plus XPU wheels. Model loading then obtains the pretrained assets. These are credible experiment routes, but the repository leaves process isolation, authentication, request limits, queues, and deployment images to the adopter.
Issue 251 makes that gap explicit. A user asked how to keep full generation parameters under concurrent load because one community server lacked concurrency and a vLLM path omitted options. On 2026-08-24, the maintainer answered that OmniVoice has no official serving implementation and said those vLLM parameters were simply unimplemented. Anyone exposing the model to several users must design and test that layer.
CC-BY-NC keeps the released weights out of commercial products
The repository code carries Apache-2.0, but the Hugging Face model card assigns the pretrained weights a CC-BY-NC license because of restrictions in the training data. In issue 235, a maintainer said the team does not hold the rights to grant a commercial license for those weights. They discussed a future model under a more open license but gave no confirmed timeline, so buyers should judge the artifact available now.
That split is easy to miss when GitHub shows Apache-2.0 beside 9,824 stars. A business may use the code license and still lack permission for the supplied checkpoint. Training another model also needs a review of every dataset and component license; the maintainer noted an additional commercial condition in the Higgs audio tokenizer. Treat model, code, data, and tokenizer terms as separate documents.
Two open reports describe speech that omits source text
Open issue 245 reports a Polish sentence whose ending was cut off in OmniVoice 0.2.1 on an RTX 4070 Super. Issue 253 describes short inputs that randomly lose sections during cloning on a Windows RTX 3050 setup. These are user reports, not our lab findings, and neither proves a universal defect. They do show why a valid WAV file is not enough evidence for unattended narration.
The repository was pushed on 2026-08-31, and issue activity continued through 2026-09-05. GitHub listed 58 combined issues and pull requests when fetched. Release 0.2.1 arrived on 2026-07-16 with voice-prompt saving, ASR device selection, and optional text normalization. The code and discussion are active, but a July tag, skipped tests, and unresolved serving questions still describe a young production surface.
Research use fits better than a public voice API
OmniVoice earns a trial when one research setup must sample many languages or compare cloning across hardware. The 18-second build and 0-audit finding remove two setup worries, while the 7,122 MB environment and 7 skipped tests leave substantial validation work. Record consent for every reference voice, lock down the demo, and listen for omissions as well as pronunciation errors.
Pocket TTS is the simpler CPU-oriented option. CosyVoice is a better comparison when streaming or server examples matter, and OpenVoice narrows the job to voice transfer and style. OmniVoice's reason to exist is its unusually broad language list. That advantage is real for evaluation, but it does not cancel the noncommercial checkpoint, the missing official server, or the need to verify what every generated clip says.

