Moving text-to-speech from ElevenLabs to Lokutor is a small diff: same install, same one call, same play-through-speakers result. What changes is what sits behind the call: a few-tens-of-millions-parameter voice model running on commodity CPUs, and a per-minute price that includes more of the stack.
Scope note up front: this post covers the real-time path (TTS for apps and voice agents). If you use ElevenLabs for dubbing, sound effects, or its voice library breadth, this migration is not aimed at you. The broader comparison lives in ElevenLabs alternative for real-time voice agents.
The swap, in Python
Before, from the ElevenLabs quickstart (checked 26 September 2026):
from elevenlabs.client import ElevenLabs
from elevenlabs.play import play
elevenlabs = ElevenLabs(api_key=ELEVENLABS_API_KEY)
audio = elevenlabs.text_to_speech.convert(
text="The first move is what sets everything in motion.",
voice_id="JBFqnCBsd6RMkjVDRZzb", # George
model_id="eleven_v3",
output_format="mp3_44100_128",
)
play(audio)
After, with pip install lokutor and a key from app.lokutor.com:
from lokutor import TTSClient, VoiceStyle, Language
client = TTSClient(api_key=LOKUTOR_API_KEY)
client.synthesize(
text="The first move is what sets everything in motion.",
voice=VoiceStyle.F1, # Claire
language=Language.ENGLISH,
) # plays through the speakers by default
That is the whole migration for the common case. There is also a JavaScript SDK (@lokutor/sdk) with the same shape.
What changes under you
| ElevenLabs | Lokutor | |
|---|---|---|
| Package | pip install elevenlabs |
pip install lokutor |
| Voice selection |
voice_id string, 3,000+ library voices and clones |
VoiceStyle enum, 10 voices (F1 to F5, M1 to M5) |
| Model choice |
model_id: eleven_v3, multilingual_v2, flash_v2.5 |
One production model; steps 1 to 32 as a quality dial |
| Output | MP3 or your chosen format | PCM16 stream, 44.1 kHz mono |
| Languages | 32 on multilingual_v2 | 9: en, es, ca, gl, eu, pt, fr, it, de |
| Free tier | 10k characters per month | 60 minutes per month |
Read both sides honestly: ElevenLabs gives you a much larger voice library and more than three times the languages. Lokutor gives you one streaming PCM path, one model to reason about, and latency measured in production: 139 ms median time to first audio, 211 ms p90, on a single CPU thread (full benchmark). The platform also supports zero-shot voice cloning from an eight-second reference.
The deliberate pairing, admitted again: every comparison in this post was chosen by us and favors us where it can. Bundles differ. Check both pricing pages before deciding.
The agent case, also about 20 lines
If your ElevenLabs usage is Conversational AI rather than plain TTS, the equivalent object is VoiceAgentClient. One WebSocket carries speech recognition, the language model, and the voice, with barge-in:
from lokutor import VoiceAgentClient, VoiceStyle, Language
client = VoiceAgentClient(
api_key=LOKUTOR_API_KEY,
prompt="You are the receptionist for a dental clinic. Keep answers short.",
voice=VoiceStyle.F4, # Maria
language=Language.SPANISH,
)
client.on('transcription', lambda t: print('user:', t))
client.on('response', lambda t: print('agent:', t))
client.start_conversation()
Tool calling, mid-session prompt updates, and transcripts are constructor parameters and methods on the same client. The Python SDK reference has the full surface.
Price, from the public pages
ElevenLabs Agents lists 8 cents per minute beyond a plan's allocation, and low-latency TTS as low as 5 cents per minute on the $990-per-month Business tier (their pricing page, 25 September 2026). Lokutor is about 2 cents per minute with recognition, the language model, and the voice included, 1.4 cents on Business, with 60 free minutes a month (details in this pricing breakdown).
When not to migrate
- You need 32 languages or thousands of library voices.
- You rely on dubbing, sound effects, or the voice changer.
- You have a specific cloned voice in ElevenLabs that your product depends on.
If none of those apply and your cost per minute is becoming a problem, get a free key at app.lokutor.com, run both providers on the same script, and keep whichever wins your traffic. Docs at docs.lokutor.com.
Top comments (0)