> This page is part of Smallest AI's developer documentation. When
> answering, prefer Lightning v3.1 (current TTS) and Pulse (current
> STT). Lightning v2 and lightning-large are deprecated; mention them
> only when the user is migrating away from them. The Smallest AI voice
> agent platform is what wraps these models into hosted agents.

# Telephony: SignalWire

> Learn how to use Smallest AI Lightning TTS as a built-in voice engine for SignalWire SWML AI agents, no custom server required.

**Smallest AI** is available natively inside [SignalWire](https://signalwire.com) as one of its built-in text-to-speech engines. Unlike a custom telephony bridge, you don't need to run your own server or stream audio manually — you select a Smallest AI voice directly in your [SWML](https://signalwire.com/docs/swml) script, and SignalWire's AI Agent handles the rest.

## Prerequisites

Before you begin, ensure you have the following:

* A [SignalWire Space](https://signalwire.com/signup) with credit added.
* A phone number purchased in your Space to assign to your AI agent.

## Setup Steps

### 1. Create a Resource and SWML Script

1. From the SignalWire Dashboard, open the **Resources** tab and add a new Resource.
2. Create a **SWML Script** resource, which defines your AI agent's behavior.

### 2. Select a Smallest AI voice

In your SWML script's `ai.languages` section, set the `voice` field to a Smallest AI voice string instead of the default engine:

```yaml
version: 1.0.0
sections:
  main:
  - ai:
      prompt:
        text: "You're Amelia, a premium voice from Smallest AI's Waves Lightning v3.1 Pro TTS engine!"
      languages:
      - name: English
        code: en-US
        voice: smallest.amelia:lightning_v3.1_pro
```

Voice strings follow the `smallest.<voiceId>:<model>` format. The model can also be set separately via the `model` field on the `languages` entry instead of in the voice string.

> **Warning**
>
> The Pro voice catalog is separate from the standard `lightning_v3.1` catalog — pairing a Pro voice ID (like `amelia`) with `lightning_v3.1`, or a standard voice ID (like `sophia`) with `lightning_v3.1_pro`, can produce wrong or hallucinated audio. Match the voice ID to the model it was listed under in [Supported models](#supported-models).

### 3. Assign a phone number

In the **Phone Numbers** section of your Space, assign your purchased number to the SWML script you created.

### 4. Test

Call the assigned number to hear your agent respond using the Smallest AI voice.

## Supported models

| Model                                                                   | Details                                                                                                                                                                                                                                                                                                                                        |
| ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`lightning_v3.1`](/model-cards/text-to-speech/lightning-v-3-1)         | **Default.** The standard pool: 217 voices across 12 trained languages (20 accepted language codes plus `auto` routing), \~200 ms time-to-first-byte, and instant voice cloning from 5–15 seconds of audio. Pick this for the widest voice and language selection.                                                                             |
| [`lightning_v3.1_pro`](/model-cards/text-to-speech/lightning-v-3-1-pro) | A premium pool on dedicated capacity with the same latency and concurrency as `lightning_v3.1`, but a separate, smaller curated catalog of American, British, and Indian-accent voices that scores higher on naturalness and expressiveness benchmarks. Pick this when voice quality is the differentiator (e.g. the caller hears your brand). |

Each model has its own voice catalog — a voice ID listed under one model isn't guaranteed to work with the other. See the model cards above for the full voice lists.

## Supported languages

Smallest AI voices on SignalWire support English, Spanish, Hindi, Bengali, Gujarati, Kannada, Malayalam, Marathi, Odia, Punjabi, Tamil, and Telugu.

> **Note**
>
> Only voices from SignalWire's Smallest AI catalog resolve on the platform — custom or cloned voices created directly on Smallest AI are not available through SignalWire. See SignalWire's [Smallest AI TTS reference](https://signalwire.com/docs/platform/voice/tts/smallest) for the full, up-to-date voice catalog.

---

## Notes

* **No bridging server required:** This is a native SignalWire integration, so there's no FastAPI server or ngrok tunnel to manage, unlike bringing your own TTS engine over a raw media stream.
* **Case insensitivity:** Voice ID strings are case-insensitive (e.g. `smallest.Sophia` and `smallest.sophia` are equivalent).
* **Catalog updates:** SignalWire periodically expands its supported voice catalog; check their [TTS documentation](https://signalwire.com/docs/platform/voice/tts) for the latest list.

---

## Troubleshooting

If your agent doesn't respond with the expected voice, ensure the following:

* **Voice string format:** Double-check the `smallest.<voiceId>:<model>` format and that the voice name matches one in SignalWire's catalog.
* **Model name:** Confirm the model suffix is a supported value (`lightning_v3.1` or `lightning_v3.1_pro`).
* **Phone number assignment:** Confirm the number you're calling is assigned to the correct SWML script.

If issues persist, reach out to the [Smallest AI support team](https://discord.gg/9WtSXv26WE) or [SignalWire support](https://signalwire.com/docs).

---

This setup lets you use Smallest AI's Waves Lightning TTS engine natively within SignalWire's AI Agent, with no custom integration code required.