> 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.:` 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.:` 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. > Use Smallest AI's Lightning TTS as a native voice engine in SignalWire's SWML AI agents.