Telephony: SignalWire
Smallest AI is available natively inside SignalWire 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 script, and SignalWire’s AI Agent handles the rest.
Prerequisites
Before you begin, ensure you have the following:
- A SignalWire Space 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
- From the SignalWire Dashboard, open the Resources tab and add a new Resource.
- 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:
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.
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.
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
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.
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 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.Sophiaandsmallest.sophiaare equivalent). - Catalog updates: SignalWire periodically expands its supported voice catalog; check their TTS documentation 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.1orlightning_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 or SignalWire support.
This setup lets you use Smallest AI’s Waves Lightning TTS engine natively within SignalWire’s AI Agent, with no custom integration code required.