> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes.

# 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

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.

In the Dashboard, open **Phone Numbers** > **Purchased**, select the number, and open its edit page. Under **Inbound Call Settings**, select **+ Assign Resource**, choose the SWML script, and save the settings.

### 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