Text to Speech APIBuild Voice Into Any App

Expressive, directable speech at ~100ms latency, the same S2.1 Pro model behind HeyGen, Retell, and Plaud.

curl https://api.fish.audio/v1/tts \
  -H "Authorization: Bearer YOUR_FISH_AUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "model: s2.1-pro" \
  -d '{
    "text": "[chuckle] When you are building something new, there is this [audience laughing] mix of wonder and fear. [whisper] But that's what makes it worth building.",
    "reference_id": "933563129e564b19a115bedd57b7406a",
    "format": "mp3"
  }' --output speech.mp3
<100ms
TIME TO FIRST AUDIO
Unlimited
direction tags
80+
LANGUAGES
$15/1M UTF-8 bytes
PAY AS YOU GO

Running in production at

Models built for different production needs

One API. Switch models with a single header. Both API models bill at the same flat rate.

THE ORIGINAL

S2 Pro

Accurate on even the shortest utterances

  • Instant voice cloning
  • Full multilingual support
  • Reliable on very short prompts
  • Same flat rate as S2.1 Pro
View Docs
RECOMMENDED

S2.1 Pro

The most expressive model Fish ships.

  • Time-to-first-audio ~100ms (no single H200)
  • Real-time factor 0.195
  • 80+ languages, instant code-switching
  • Open-domain Emotion Tags
  • Native multi-speaker in one generation
View Docs
ENTERPRISE DEPLOYMENT

On-premise

Deploy in your own infrastructure.

  • VPC, on-prem, sovereign cloud, air-gapped
  • Zero data egress
  • Full model control
  • Commercial license available
Contact Sales

From signup to first audio in 5 minutes.

No sales call required. Get an API key, install the SDK, and ship.

cURL · REST API
curl https://api.fish.audio/v1/tts \
-H "Authorization: Bearer YOUR_FISH_AUDIO_API_KEY" \
-H "Content-Type: application/json" \
-H "model: s2.1-pro" \
-d '{
"text": "[chuckle] When you are building something new, there is this [emphasis] mix of wonder and fear.",
"reference_id": "YOUR_VOICE_ID",
"format": "mp3"
}' --output speech.mp3
Python · Fish Audio SDK
from fishaudio import FishAudio
from fishaudio.utils import save
client = FishAudio(api_key="YOUR_FISH_AUDIO_API_KEY")
audio = client.tts.convert(
text="Hello from Fish Audio!",
reference_id="YOUR_VOICE_ID",
model="s2.1-pro",
)
save(audio, "output.mp3")

Everything you needto ship production speech

One API for voice creation, expressive generation, and real-time delivery.

Inline emotion and delivery

Direction written as [tag] syntax, anywhere in the text. Unlimited free-form tags, no separate emotion parameter.

Aber
Hey there.Add TagsI’m so excited to share this news!Can you hear me?
[Sad]
[Excited]
[satisfied]
[angry]

Millions of community voices

Browse and ship from the largest open voice library, or clone your own and build on top of it.

Multi-speaker dialogue

Generate a full conversation in one pass. Available on S2.1 Pro.

Aber
Sarah
Ethan

Instant voice cloning

Capture timbre and speaking style from a short reference clip. Works across all 80+ languages with no extra training.

Recorded Voice
My Cloned Voice
EnglishFemaleYoung

Read complex text naturally

Numbers, currency, dates, and units spoken correctly

$9.99
01/24
1,999

Streaming and timestamps

Stream audio with word-level timestamps.

Thefutureiscoming
0.02s0.05s0.01s0.04svoice0.01s0.03s

Build the Voice Experience Your Product Needs

Create a reusable voice, direct how it performs, and stream it into real-time products.

Clone Any Voice Instantly
with Fish Audio

The Fish Audio AI voice cloning API turns a short reference clip into a reusable voice. The clone captures timbre and speaking style and carries across all 80+ languages with no extra training.

PYTHON SDK
# Clone from reference audio
voice = session.create_model(
title="My Voice",
voices=[open("reference.wav", "rb").read()]
)
# Synthesize with the cloned voice
request = TTSRequest(
text="This is my cloned voice.",
reference_id=voice.id
)
with open("clone.mp3", "wb") as f:
for chunk in session.tts(request, backend="s2-pro"):
f.write(chunk)

Fish Audio TTS APIBenchmarks and Specs

One API. Switch models with a single header. Both API models bill at the same flat rate.

POST https://api.fish.audio/v1/tts

Benchmarks
0.195

REAL-TIME FACTOR

Short clip

VOICE CLONING

Native

MULTI-SPEAKER

REST + WebSocket

STREAMING

Word-level

TIMESTAMPS

48kHz

SAMPLE RATE

5starting

CONCURRENT REQUESTS

MP3 · WAV · Opus

AUDIO FORMATS

Flexible pricing for your needs

Pay-as-you-go with any subscriptionLearn More

S2.1 Pro

Text to Speech

$0.015/ K UTF-8 bytes
Get Started
70ms ultra-low latency
80+ languages supported
Word-level timestamps

S2 Pro

Text to Speech

$0.015/ K UTF-8 bytes
Get Started
Realtime latency
Full multilingual support
Instant voice cloning

Transcribe-1

Automatic Speech Recognition

$0.006/ audio minute
Get Started
Industry-leading ASR accuracy
Multilingual with optional language hints
Long input transcription

Concurrent Request Limits

 
Spending ThresholdConcurrency
Starter
< $100 paid5 requests
Elevated
≥ $100 paid15 requests
High Volume
≥ $1,000 paid50 requests
Enterprise
CustomCustom limits

Frequently asked questions

Fish Audio

Get to production this weekend

Get an API key, install the SDK, and ship. No card required.