Sync & Async Synthesis
Sync & Async Synthesis
Generate speech via the REST API - synchronously (one request, complete audio) or asynchronously (multiple requests in parallel).
Sample output (sync, voice: meher, model: lightning_v3.1_pro):
Requirements
- An API key from the Smallest AI Console
- For Python:
requests - For JavaScript: Node.js 18+ (built-in
fetch)
Synchronous Text to Speech
Send text, receive complete audio in the response:
Drop the model field (or set it to "lightning_v3.1") to use the standard Lightning v3.1 pool - that pool has more voices, the full 12-language catalog, plus voice cloning. The unified /waves/v1/tts route serves both.
Asynchronous Text to Speech
For concurrent requests (e.g., generating multiple audio files in parallel):
Python SDK
The smallestai Python SDK wraps the same endpoint. client.waves.synthesize_tts returns audio byte chunks; join them to get the full file. AsyncSmallestAI provides the same methods for async code.
For streaming synthesis via WebSocket or SSE, see Streaming TTS.
Parameters
You can override any parameter per request:
When to Use Each Mode
- Synchronous: Real-time voice assistants, chatbot responses, single audio generation
- Asynchronous: Batch processing, generating multiple audio files, audiobook chapters, concurrent API calls
For real-time streaming where audio starts playing before generation completes, see Streaming TTS.
Full runnable source: quickstart-python.py
Need Help?
Check out the API Reference for the full endpoint specification, or ask on Discord.

