Built for voice agents that can't wait 600ms

Fish Audio: Fish Audio S2.1-Pro

fish/s2-1-pro
active tts 1 provider
Playground

Fish Audio's recommended production text-to-speech model (S2.1-Pro) with improved quality, latency and throughput over S2-Pro, plus a free variant (s2.1-pro-free) under fair-use limits.

AuthorFish Audio
Languages1 languages
VoicesLoading...
Response formatsMP3 · WAV · PCM · Opus
Variant models2 IDs
Statusactive

Variant Models

These are native model IDs accepted by the author/provider for the same canonical model family.

Fish Audio S2.1-Pro Default

Recommended production Fish Audio TTS model; improved quality, latency, and throughput over S2-Pro.

s2.1-pro
Fish Audio S2.1-Pro Free Variant

Same model as S2.1-Pro billed at $0 for testing/dev/small business under fair-use limits.

s2.1-pro-free

Providers

Different providers can host the same model. Choose one provider when you need a fixed backend, or let routing select among them.

ProviderSlugPer 1k charactersLatencyiFor TTS, latency is measured as time to first byte of audio. For STT, latency is measured as time to first token.ModesUptime
Fish Audio 19 params
fish
From $0.015
—
Synchronous · Streaming

Supported languages

1 languages
English en

Voices

Features

Text to speech

Generates spoken audio from text input.

text_to_speech
Streaming

Supports streaming audio output (HTTP + WebSocket) with optional timestamps.

streaming
Synchronous

Synthesizes speech from fully-submitted text in a single synchronous request.

synchronous
Multilingual

Supports 83 languages.

multilingual
Voice cloning

Supports instant (reference audio) and persistent (reference_id) voice cloning.

voice_cloning
Emotion / expression control

Natural-language and bracket expression control; multi-speaker.

emotion_control

Code

Client
Mode
Language

ElevenLabs SDK streaming TTS

Routes the ElevenLabs SDK through allmodels and streams the audio response.

import { ElevenLabsClient } from "elevenlabs";

const client = new ElevenLabsClient({
  apiKey: process.env.ALLMODELS_API_KEY,
  baseUrl: "https://api.allmodels.io/el"
});

const stream = await client.textToSpeech.stream("voice_id", {
  text: "I'm sorry, Dave. I'm afraid I can't do that.",
  modelId: "fish/s2-1-pro",
  outputFormat: "mp3_44100_128"
}, {
  queryParams: {
    provider: {
      "only": [
        "fish"
      ]
    }
  }
});

const reader = stream.getReader();
for (;;) {
  const { done, value } = await reader.read();
  if (done) break;
  // Write value to your response, file, or audio playback pipeline.
}