Bolna
This guide walks you through configuring Smallest AI as the TTS and STT provider in Bolna, an open-source platform for building and deploying voice agents over telephony. Bolna lets you pick a provider independently per capability — use Smallest AI for both TTS and STT, or mix it with other providers, straight from Bolna’s dashboard Provider dropdowns or via the SDK.
Prerequisites
- A Bolna instance — self-hosted (see the bolna repository) or via the Bolna dashboard
- A Smallest AI API key — get one from the Smallest AI dashboard
Setup
Bolna offers two ways to configure providers: the dashboard’s Audio tab (no code), or the Python SDK directly.
Dashboard
In your agent’s Audio tab:
- Speech-to-Text: choose Smallest from the Provider dropdown and select Pulse as the model.
- Text-to-Speech: choose Smallest from the Provider dropdown and select Lightning v3.1 or Lightning v3.1 Pro as the model.
Code (SDK)
Set provider="smallest" on both the Transcriber and Synthesizer when building an Assistant:
Set SMALLEST_API_KEY in your environment — see the provider table in README.md. You can also pass a key directly per-agent via transcriber_key / synthesizer_key.
Always pass model="pulse" explicitly on Transcriber. Bolna’s top-level Transcriber.model field defaults to "nova-2", and that default is passed straight through regardless of provider — leaving model unset with provider="smallest" sends an invalid model to Smallest AI.
Configuration Reference
The fields below apply to the SDK path. The dashboard’s Audio tab exposes a subset of these (Provider, Model, Language) as dropdowns for both STT and TTS.
Notes
- Bolna routes TTS requests to
https://api.smallest.ai/waves/v1/tts(HTTP) /wss://api.smallest.ai/waves/v1/tts/live(streaming), and STT requests towss://api.smallest.ai/waves/v1/stt/live. - Telephony audio encoding/sample rate for STT is unconditionally auto-configured per provider: mulaw @ 8kHz for Twilio and SIP trunks, linear16 @ 8kHz for Exotel/Plivo, linear16 @ 16kHz for web calls.
- Keyword boosting in the dashboard’s STT settings doesn’t apply to Smallest AI per Bolna’s Audio tab docs — consistent with
Transcriber.keywordsbeing a no-op for Smallest AI at the SDK level too. - For issues with the Smallest AI integration in Bolna, open an issue in the Bolna repository or contact us on Discord.

