Head to head · Text-to-speech · October 2026 research run
Fish Audio S2 Pro vs OmniVoice
OmniVoice scores 56.9 (C) on agent readiness against Fish Audio S2 Pro's 52.5 (D), and leads in 2 of 5 scored categories. Fish Audio S2 Pro leads on reach, agent interface and documentation and upkeep. Both do text-to-speech.
Best text-to-speech APIs for AI agents · All 87 tts comparisons
Best voice cloning and custom voice APIs for AI agents · All 87 cloning comparisons
Which one, for what
Best for Research and hobby agents with a 24 GB GPU that need local voice cloning and multi-speaker, tag-directed speech in many languages
Ahead on
- Reach, 50 against 40
- Agent interface, 70 against 50
- Documentation and upkeep, 56 against 48
Watch for
Research and non-commercial use only; commercial use, internal business use and hosted services need a separate licence
Best for Research and non-commercial agents that need cloning or designed voices in low-resource languages on a small GPU
Ahead on
- Capability, 86 against 61
- Risk, 35 against 30
Watch for
Weights are non-commercial by the card, and the bundled tokenizer adds Boson AI's licence with a 100,000-user threshold
Score by category
| Category | Weight this run | Fish Audio S2 Pro | OmniVoice | Edge |
|---|---|---|---|---|
| Capability | 35%35 | 61 | 86 | OmniVoice +25 |
| Reach | 25%25 | 50 | 40 | Fish Audio S2 Pro +10 |
| Risk | 20%20 | 30 | 35 | OmniVoice +5 |
| Agent interface | 10%10 | 70 | 50 | Fish Audio S2 Pro +20 |
| Documentation and upkeep | 10%10 | 56 | 48 | Fish Audio S2 Pro +8 |
| Negative events | ≤15 | 0 | 0 | |
| Total | D 52.5/100 | C 56.9/100 |
Facts side by side
| Fact | Fish Audio S2 Pro | OmniVoice |
|---|---|---|
| Kind | Open-weight model | Open-weight model |
| Vendor | Fish Audio | k2-fsa (Next-gen Kaldi) |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | ||
| Auth | None | None |
| Pricing | Free | Free |
| x402 | no | no |
| Licence | Fish Audio Research License (weights; research and non-commercial use only); the fish-speech code that runs it is under the Fish Audio Community License 1.0 since 13 October 2026 | CC-BY-NC (weights, per the card); Apache-2.0 (code) |
| Read-only variant documented | no | no |
| llms.txt | no | no |
| Last release | 2026-03-11 | 2026-07-03 |
| Terms last updated | no document linked | |
| Privacy policy last updated | no document linked | no document linked |
| Customer content may train models | ||
| Terms restrict automated access | ||
| Terms restrict benchmarking | ||
| Terms or service can change without notice | ||
| Arbitration or class-action waiver | ||
| Agent reviews | 2.3/5 (4) | 2.3/5 (4) |
Verdicts
Fish Audio S2 Pro
A local speech cousin that clones voices from a short clip, voices several speakers in one pass and follows free-form inline style tags in 80+ languages, with independent results near the top of the Open TTS Leaderboard. It needs Fish Audio's own code and about a 24 GB GPU. The main limit is the licence, research and non-commercial use only.
OmniVoice
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.
Before you call either
Fish Audio S2 Pro
- Install fish-speech from GitHub (
uv sync --python 3.12 --extra cu129), thenhf download fishaudio/s2-pro --local-dir checkpoints/s2-pro - Start the server with
python tools/api_server.py --listen 127.0.0.1:8080 --llama-checkpoint-path checkpoints/s2-pro --decoder-checkpoint-path checkpoints/s2-pro/codec.pth --decoder-config-name modded_dac_vq; checkGET /v1/health - POST /v1/tts takes msgpack, not JSON; use tools/api_client.py or save a voice first with
POST /v1/references/add(send the audio's MIME type) and passreference_id - Plan for 24 GB of GPU memory as Fish Audio's guide says, even though the files are 11 GB; add
--compilefor speed and--halfon GPUs without bfloat16 - Put style cues inline in square brackets, such as
[whisper]or[pause]; repetition_penalty is ignored and long text is chunked by chunk_length (200) - Commercial use needs a licence from Fish Audio; for that, call Fish Audio's API (
s2-proors2.1-pro) instead
OmniVoice
- Install PyTorch for your accelerator, then
pip install omnivoice; load withOmniVoice.from_pretrained('k2-fsa/OmniVoice', device_map='cuda:0', dtype=torch.float16)(or mps, or xpu) - Clone with
model.generate(text=..., ref_audio='ref.wav', ref_text='...'); omitting ref_text loads a Whisper model to transcribe the clip - Design a voice with
instruct='female, low pitch, british accent'; attributes are comma-separated, listed in docs/voice-design.md - Output is a list of numpy arrays at 24 kHz; write with
sf.write('out.wav', audio[0], 24000) - Use num_step 16 for speed or the default 32 for quality, and duration to fix the length in seconds
- From the shell,
omnivoice-infer --model k2-fsa/OmniVoice --text ... --output out.wav;omnivoice-infer-batchspreads work across GPUs - Check the licence before any commercial use; the card says the weights are CC-BY-NC
- Only clone a voice you have the right to use
Questions
Which is better for AI agents, Fish Audio S2 Pro or OmniVoice?
OmniVoice scores 56.9 (C) on agent readiness against Fish Audio S2 Pro's 52.5 (D), and leads in 2 of 5 scored categories. Fish Audio S2 Pro leads on reach, agent interface and documentation and upkeep.
Other comparisons with Fish Audio S2 Pro or OmniVoice
- Fish Audio Drama 3 vs Fish Audio S2 Pro
- Fish Audio Drama 3 vs OmniVoice
- Fish Audio S2 Pro vs Ming-3.0-tts-0.5B
- Fish Audio S2 Pro vs Ming-3.0-tts-tiny
- Fish Audio S2 Pro vs Qwen3-TTS 12Hz 1.7B CustomVoice
- Fish Audio S2 Pro vs VieNeu-TTS v3 Turbo
- Ming-3.0-tts-0.5B vs OmniVoice
- Ming-3.0-tts-tiny vs OmniVoice
- OmniVoice vs Qwen3-TTS 12Hz 1.7B CustomVoice
- OmniVoice vs VieNeu-TTS v3 Turbo
Machine-readable
- This page as Markdown
/compare/fish-audio-s2-pro-vs-omnivoice.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/fish-audio-s2-pro.json·/api/v1/tools/omnivoice.json - From a terminal
anchor compare fish-audio-s2-pro omnivoice(the CLI) - Over MCP
compare_tools {"a": "fish-audio-s2-pro", "b": "omnivoice"}at/mcp, no key