---
title: "How to Switch from ElevenLabs to Fish Audio"
description: "Switch ElevenLabs text-to-speech to Fish Audio without replacing the ElevenLabs SDK. Change the base URL, API key, model, and voice with AllModels."
canonical: "https://allmodels.io/guides/how-to-switch-from-elevenlabs-to-fish-audio"
markdown: "https://allmodels.io/guides/how-to-switch-from-elevenlabs-to-fish-audio.md"
author: "AllModels"
datePublished: "2026-07-30"
dateModified: "2026-07-30"
---

# How to Switch from ElevenLabs to Fish Audio

Keep the ElevenLabs SDK. Point it at AllModels, then replace the model and voice. Your speech-generation call stays the same.

## The short answer

1. Use your AllModels API key and set the SDK base URL to `https://api.allmodels.io/el`.
2. Set the model to `fish/s2-1-pro` and replace `FISH_VOICE_ID` with a [Fish voice ID](https://allmodels.io/model?model=fish%2Fs2-1-pro#voices).

> AllModels is an independent service and is not affiliated with, endorsed by, or sponsored by OpenAI, ElevenLabs, Fish Audio, or Cartesia.

## Code

These examples generate an MP3 response. The provider migration only changes the client configuration, model, and voice.

### JavaScript

Before — ElevenLabs:

```javascript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const client = new ElevenLabsClient({
  apiKey: process.env.ELEVENLABS_API_KEY
});

const audio = await client.textToSpeech.convert("ELEVENLABS_VOICE_ID", {
  text: "Hello from my application",
  modelId: "eleven_flash_v2_5",
  outputFormat: "mp3_44100_128"
});
```

After — Fish Audio through AllModels:

```javascript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

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

const audio = await client.textToSpeech.convert("FISH_VOICE_ID", {
  text: "Hello from my application",
  modelId: "fish/s2-1-pro",
  outputFormat: "mp3_44100_128"
});
```

### Python

Before — ElevenLabs:

```python
import os
from elevenlabs.client import ElevenLabs

client = ElevenLabs(
    api_key=os.environ["ELEVENLABS_API_KEY"],
)

audio = client.text_to_speech.convert(
    "ELEVENLABS_VOICE_ID",
    text="Hello from my application",
    model_id="eleven_flash_v2_5",
    output_format="mp3_44100_128",
)
```

After — Fish Audio through AllModels:

```python
import os
from elevenlabs.client import ElevenLabs

client = ElevenLabs(
    api_key=os.environ["ALLMODELS_API_KEY"],
    base_url="https://api.allmodels.io/el",
)

audio = client.text_to_speech.convert(
    "FISH_VOICE_ID",
    text="Hello from my application",
    model_id="fish/s2-1-pro",
    output_format="mp3_44100_128",
)
```

## Keep using the ElevenLabs SDK

Switching providers through AllModels is intentionally simple: keep the SDK and request flow you already use, point the client at AllModels, then choose a different model and voice.

The compatible ElevenLabs SDK surface supports:

- [text-to-speech and streaming TTS](https://docs.allmodels.io/elevenlabs/text-to-speech)
- [file transcription](https://docs.allmodels.io/elevenlabs/transcription)
- [realtime transcription](https://docs.allmodels.io/elevenlabs/realtime)
- [Speech Engine conversations](https://docs.allmodels.io/elevenlabs/speech-engine)
- [voice discovery](https://docs.allmodels.io/elevenlabs/voices)

Read the [complete ElevenLabs SDK compatibility guide](https://docs.allmodels.io/elevenlabs) for setup details, supported methods, and current limitations.

## About Fish Audio S2.1 Pro

Fish Audio launched S2.1 Pro alongside a $52 million seed announcement. The company says the model can clone a voice from five seconds of audio and offers word-level control over emotion, intonation, and pacing.

Fish Audio also claims S2.1 Pro is twice as fast as Cartesia and costs one sixth as much as ElevenLabs, and names HeyGen, LiveKit, Retell, Sanas, and OpenArt as production users. Treat those as provider-reported comparisons and test quality, latency, and cost against your own workload.

- [Visit Fish Audio](https://fish.audio/)
- [Read Fish Audio’s S2.1 Pro announcement](https://x.com/FishAudio/status/2082152596739862853)

## Common migration questions

### Do I need to replace the ElevenLabs SDK?

No. Keep the installed SDK and its speech method. AllModels exposes a compatible base URL for it.

### Can I reuse my ElevenLabs voice?

No. Choose a voice from the [Fish Audio S2.1 Pro voice list](https://allmodels.io/model?model=fish%2Fs2-1-pro#voices), then replace `FISH_VOICE_ID` with its ID.

### Can I switch providers again later?

Yes. Keep the AllModels base URL and API key, then change the model and voice to another supported provider.

## Continue

- [Browse Fish Audio models](https://allmodels.io/models?provider=fish)
- [Read the AllModels documentation](https://docs.allmodels.io)
- [View the canonical HTML guide](https://allmodels.io/guides/how-to-switch-from-elevenlabs-to-fish-audio)
