> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# Fish Audio

> Learn how to use Fish Audio's marketplace and cloned TTS voices with SignalWire AI Voice applications.

Fish Audio is a text-to-speech engine with a large voice marketplace, voice cloning, and
automatic language detection across dozens of languages.

## Models

SignalWire supports the following Fish Audio models.
See [Fish Audio's documentation](https://docs.fish.audio/) for more detail.

| Model           | Description                          |
| --------------- | ------------------------------------ |
| `s2.1-pro`      | **Default.** Latest-generation model |
| `s2-pro`        | Previous-generation pro model        |
| `s1`            | First-generation model               |
| `s2.1-pro-free` | Free developer tier of `s2.1-pro`    |

## Voices

Press play to audition any Fish Audio voice, then **copy config** to grab the value for SWML or your SDK.

A Fish Audio voice ID is a **reference ID** — a long hexadecimal string found on the voice's page
in the Fish Audio marketplace. The default voice is Energetic Male
(`802e3bc2b27e49c2995d23ef70e6ac89`).

Only Fish Audio's public marketplace voices are supported.
Cloned and custom voices do not work — use a reference ID from the public marketplace.

Browse voices and find their reference IDs on Fish Audio's platform:

#### [Fish Audio marketplace](https://fish.audio/)

Browse and preview marketplace voices.

#### [Fish Audio docs](https://docs.fish.audio/)

Reference for models, voices, and cloning.

## Languages

Fish Audio has no language setting — the model automatically detects the language of your text.
The `s2.1-pro` model covers roughly 83 languages; refer to the
[Fish Audio docs](https://docs.fish.audio/) for current language coverage.

## Usage

A voice identifier string has three parts: the `fish` engine code, a reference ID, and an optional model.

**Format**: `fish.<referenceId>:<model>`

* `referenceId` (required): a Fish Audio voice reference ID; see [Voices](#voices).
* `model` (optional): one of the [models](#models) above. Defaults to `s2.1-pro`.

**Examples**:

```text
fish.802e3bc2b27e49c2995d23ef70e6ac89:s2.1-pro
fish.802e3bc2b27e49c2995d23ef70e6ac89
```

You can also set the model with the separate
[`model`](/docs/swml/reference/ai/languages#use-voice-strings)
parameter of the [`languages`](/docs/swml/reference/ai/languages) SWML method
instead of appending `:model` to the voice string:

```yaml
languages:
- name: English
  code: en-US
  voice: fish.802e3bc2b27e49c2995d23ef70e6ac89
  model: s2.1-pro
```

---

## Build with Fish Audio on SignalWire

### Create a Space and add credit

If you don't have one yet, you'll need to
[create a SignalWire Space](/docs/platform/signing-up-for-a-space).
Be sure to add some credit to test with.

### Add a new Resource

Navigate to the **Resources** tab in your [SignalWire Dashboard](https://my.signalwire.com) and click **+ Add New** to create a new Resource.

### Create a SWML Script

From the Resources menu, select **SWML Script**.
Name it something fun and recognizable.
Ours is titled Fish Wizard.

Next, paste the following starter script into the text box, and hit <kbd>Save</kbd>:

```yaml
version: 1.0.0
sections:
  main:
  - ai:
      prompt:
        text: |
          You're a voice from Fish Audio's TTS engine!
          Introduce yourself, and have a conversation about programmable unified communications on the SignalWire platform.
      languages:
      - name: English
        code: en-US
        voice: fish.802e3bc2b27e49c2995d23ef70e6ac89:s2.1-pro
```

### Buy and assign a phone number

Navigate to the **Phone Numbers** section of the Dashboard's left sidebar menu.

Purchase a phone number and assign it to the desired SWML script.

![A purchased phone number showing assignment to a specified Resource.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/signalwire.docs.buildwithfern.com/f0b50511622e76d7be927bd442190e2e41a88745515f22bc727fa5b480e23409/assets/images/dashboard/phone-numbers/assign-resource-voice.webp?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260811%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260811T085800Z&X-Amz-Expires=604800&X-Amz-Signature=0fd545e0a5d7314ae61345d44c31a3b9a73c25eef4ac8ed7f3bbdb2aea2bca86&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

### Give it a call!

Call the number you just assigned to chat with your new AI voice application on the phone.

## Next steps with SWML

Now you've deployed your very first SignalWire voice AI application using Fish Audio voices.
Next, dive deeper into SWML to explore its capabilities!

#### [Methods reference](/docs/swml)

Documentation for all SWML methods

#### [AI in SWML](/docs/swml/guides)

Build advanced AI applications using SignalWire Markup Language

#### [Guides](/docs/swml/guides)

SWML guides and demo applications