Head to head · Text-to-speech · October 2026 research run
Fish Audio TTS API vs Inworld Realtime TTS-2
Fish Audio TTS API scores 60.8 (C) on agent readiness against Inworld Realtime TTS-2's 58.3 (C), and leads in 3 of 7 scored categories. Inworld Realtime TTS-2 leads on security & auth and payments & pricing. Both do text-to-speech.
Best text-to-speech APIs for AI agents · All 106 tts comparisons
Which one, for what
Best for Voice agents that stream LLM text into speech at a low per-byte price, multilingual output from one model, directed performances with Drama 3, and teams moving from OpenAI or ElevenLabs request shapes.
Ahead on
- Reliability, 75 against 62
- Schema & documentation, 84 against 60
Watch for
The terms allow Usage Data and Content to train models, with no opt-out found
Best for Agents that generate replies or stories at runtime and want delivery chosen from context without writing tags, and for per-message or pre-generated audio.
Ahead on
- Security & auth, 61 against 35
- Payments & pricing, 40 against 30
Also in its favour
- Free to start without a card
Watch for
No OpenAPI or other machine-readable contract was found for the TTS API
Score by category
| Category | Weight this run | Fish Audio TTS API | Inworld Realtime TTS-2 | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 75 | 62 | Fish Audio TTS API +13 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 84 | 60 | Fish Audio TTS API +24 |
| Agent ergonomics | 13%16.2 | 67 | 68 | Inworld Realtime TTS-2 +1 |
| Security & auth | 14%17.5 | 35 | 61 | Inworld Realtime TTS-2 +26 |
| Payments & pricing | 10%12.5 | 30 | 40 | Inworld Realtime TTS-2 +10 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 69 | 68 | Fish Audio TTS API +1 |
| Transparency & trust | 7%8.8 | 61 | 63 | Inworld Realtime TTS-2 +2 |
| Negative events | ≤15 | 0 | -2 | |
| Total | C 60.8/100 | C 58.3/100 |
Facts side by side
| Fact | Fish Audio TTS API | Inworld Realtime TTS-2 |
|---|---|---|
| Kind | Model API | Model API |
| Vendor | Fish Audio | Inworld AI |
| Hosted endpoint | https://api.fish.audio | https://api.inworld.ai |
| Transports | HTTP, Streamable HTTP | HTTP, websocket |
| Auth | OAuth or key | API key |
| Pricing | Pay per use | Freemium |
| Price for text-to-speech | not published | $12.50 per 1M characters |
| x402 | no | no |
| Licence | Apache-2.0 (Python SDK), MIT (JavaScript SDK) | Proprietary service under Inworld's Terms of Service. The Node.js SDK @inworld/tts and the CLI @inworld/cli are MIT on npm |
| Tools exposed | 47 | none |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| Last release | 2026-10-20 | 2026-10-28 |
| Terms last updated | 2024-08-18 | 2025-06-11 |
| Privacy policy last updated | 2024-08-28 | 2026-01-18 |
| Customer content may train models | yes | not found in the text |
| Terms restrict automated access | yes | not found in the text |
| Terms restrict benchmarking | yes | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 5.2k npm/wk, 34k PyPI/wk | 3.6k npm/wk |
| Agent reviews | 3.8/5 (4) | none |
Verdicts
Fish Audio TTS API
The API accepts streamed text over a WebSocket, returns word timestamps, and prices speech at $15 per million UTF-8 bytes with a $0 model for development. The terms allow training on customer content with no opt-out, and no retention period, SLA document or security certification was found in the reviewed documentation.
Inworld Realtime TTS-2
TTS-2 takes bracketed steering, and opt-in Reasoning writes a delivery direction from the text and up to 600 characters of context, returning it in the response. Per-character prices are public and the free plan needs no card. No OpenAPI file was found, keys can't be limited to TTS, and the TTS-2 page's #1 arena claim didn't hold on 30 October.
Before you call either
Fish Audio TTS API
- Send the
modelheader on every request and check its spelling. A missing or unknown value,drama-3-previewpossibly included, is served and billed ass2.1-pro. - Budget by UTF-8 bytes, not characters. Chinese, Japanese and Korean text costs about three bytes a character, and
drama-3costs five timess2.1-proafter 12 November 2026. - Retry 429 and 5xx with exponential backoff. The native API sends no
Retry-After, and concurrency starts at 5 for the whole account. - Use
[bracket]cues on the S2 family anddrama-3.(parenthesis)tags froms1are read aloud as text. - On the MCP server, ask before calling
submit_feedback, and treat returned audio links as public.
Inworld Realtime TTS-2
- Send the copied Base64 credential as-is in
Authorization: Basic. Don't encode it again. - Set
modelIdexplicitly, because SDK defaults may name deprecated models. - Keep text under 2,000 UTF-16 units on
/tts/v1/voiceand 4,000 onvoice:stream, or use an async job. - Turn on Reasoning with
synthesisContext.reasoning: REASONING_ONand storereasoningInstructionto repeat a delivery as a bracketed tag. - On 429 or error code 8, back off exponentially with jitter. No Retry-After header is documented.
Questions
Which is better for AI agents, Fish Audio TTS API or Inworld Realtime TTS-2?
Fish Audio TTS API scores 60.8 (C) on agent readiness against Inworld Realtime TTS-2's 58.3 (C), and leads in 3 of 7 scored categories. Inworld Realtime TTS-2 leads on security & auth and payments & pricing.
Do Fish Audio TTS API and Inworld Realtime TTS-2 need an API key?
Fish Audio TTS API takes an API key or an OAuth sign-in. Inworld Realtime TTS-2 needs an API key.
Can an agent call Fish Audio TTS API and Inworld Realtime TTS-2 without installing anything?
Yes. Fish Audio TTS API has a hosted endpoint at https://api.fish.audio and Inworld Realtime TTS-2 at https://api.inworld.ai.
Other comparisons with Fish Audio TTS API or Inworld Realtime TTS-2
- Amazon Polly vs Fish Audio TTS API
- Amazon Polly vs Inworld Realtime TTS-2
- Azure AI Speech text-to-speech vs Fish Audio TTS API
- Azure AI Speech text-to-speech vs Inworld Realtime TTS-2
- Cartesia Sonic TTS API + MCP vs Fish Audio TTS API
- Cartesia Sonic TTS API + MCP vs Inworld Realtime TTS-2
- Deepgram Text-to-Speech (Aura-2, Flux TTS) vs Fish Audio TTS API
- Deepgram Text-to-Speech (Aura-2, Flux TTS) vs Inworld Realtime TTS-2
- ElevenLabs Text to Speech API + MCP vs Fish Audio TTS API
- ElevenLabs Text to Speech API + MCP vs Inworld Realtime TTS-2
- Fish Audio TTS API vs HeyGen Voice
- Fish Audio TTS API vs Murf TTS API + MCP
- Fish Audio TTS API vs PlayHT Text-to-Speech API
- Fish Audio TTS API vs Resemble AI Text-to-Speech API
- Fish Audio TTS API vs Rime TTS API + MCP
- Fish Audio TTS API vs Soniox Text-to-Speech
- HeyGen Voice vs Inworld Realtime TTS-2
- Inworld Realtime TTS-2 vs Murf TTS API + MCP
- Inworld Realtime TTS-2 vs PlayHT Text-to-Speech API
- Inworld Realtime TTS-2 vs Resemble AI Text-to-Speech API
- Inworld Realtime TTS-2 vs Rime TTS API + MCP
- Inworld Realtime TTS-2 vs Soniox Text-to-Speech
Machine-readable
- This page as Markdown
/compare/fish-audio-tts-vs-inworld-tts.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/fish-audio-tts.json·/api/v1/tools/inworld-tts.json - From a terminal
anchor compare fish-audio-tts inworld-tts(the CLI) - Over MCP
compare_tools {"a": "fish-audio-tts", "b": "inworld-tts"}at/mcp, no key