Engine Selection
May 25, 2026 ยท View on GitHub
RealtimeTTS supports local engines, cloud engines, free-service wrappers, and experimental local voice-cloning stacks. Pick the smallest engine that matches your latency, quality, licensing, and deployment needs.
Status on this page is documentation status, not a guarantee of support level.
Each current concrete engine source now has a focused page under docs/engines/.
Fast Choices
| Need | Start with |
|---|---|
| Verify local audio quickly | SystemEngine |
| Free simple service, no API key | GTTSEngine or EdgeEngine |
| Commercial cloud API | OpenAIEngine, AzureEngine, ElevenlabsEngine, CartesiaEngine, MiniMaxEngine, CambEngine, or ModelsLabEngine |
| Word timings | AzureEngine; KokoroEngine for supported English voices |
| Local neural voice cloning | CoquiEngine, ZipVoiceEngine, OmniVoiceEngine, FasterQwenEngine, LuxTTSEngine, ChatterboxEngine, SoproTTSEngine, PocketTTSEngine, PocketTTSGpuEngine, NeuTTSEngine, or MossTTSEngine |
| Reliability fallback | Pass a list of compatible engines to TextToAudioStream |
Engine Matrix
| Engine | Type | Install path observed | Needs | Output/playback notes |
|---|---|---|---|---|
SystemEngine | Local system TTS | realtimetts[system] | System voices | PCM through PyAudio. |
GTTSEngine | Free service wrapper | realtimetts[gtts] | Network access | Service-backed behavior; no API key. |
EdgeEngine | Free service wrapper | realtimetts[edge] | Network access, mpv | Compressed audio path through mpv. |
OpenAIEngine | Cloud API | realtimetts[openai] | OPENAI_API_KEY | MP3 uses mpv; PCM uses PyAudio. |
AzureEngine | Cloud API | realtimetts[azure] | Constructor key and region | PCM through PyAudio; word timings supported. |
ElevenlabsEngine | Cloud API | realtimetts[elevenlabs] | ELEVENLABS_API_KEY, mpv | MPEG audio path through mpv. |
CambEngine | Cloud API | realtimetts[camb] | CAMB_API_KEY | API-backed multilingual synthesis. |
MiniMaxEngine | Cloud API | realtimetts[minimax] | MINIMAX_API_KEY, mpv | MP3 output, pytest coverage exists. |
CartesiaEngine | Cloud API | realtimetts[cartesia] | CARTESIA_API_KEY | Raw PCM formats in source. |
ModelsLabEngine | Cloud API | realtimetts[modelslab] | MODELSLAB_API_KEY, mpv | Present in engines package, not root export. |
CoquiEngine | Local neural | realtimetts[coqui] | Local model files, likely GPU | Voice cloning; call shutdown() in scripts. |
PiperEngine | Local executable | realtimetts[piper] plus Piper binary | Piper binary, model/config files | Very practical for local deployment; uses PIPER_PATH. |
StyleTTSEngine | Local neural | realtimetts[styletts] plus StyleTTS2 checkout | StyleTTS2 checkout/model assets | Local voice/reference-audio workflow. |
ParlerEngine | Local neural | realtimetts[parler] | Parler stack, GPU recommended | Heavy local model setup. |
KokoroEngine | Local neural | realtimetts[kokoro] plus language extras | Optional jp, zh, ko extras | Word timings for supported English voices. |
OrpheusEngine | Local/API-style | realtimetts[orpheus] | OpenAI-compatible endpoint or local model stack | LM Studio path documented from Zaphod notes. |
FasterQwenEngine | Local neural | realtimetts[qwen] | Faster Qwen3 stack, reference audio | Voice cloning and emotion examples exist. |
OmniVoiceEngine | Local neural | realtimetts[omnivoice] | OmniVoice stack, reference audio/text | Multilingual voice cloning. |
PocketTTSEngine / PocketTTSGpuEngine | Local lightweight | realtimetts[pockettts], or realtimetts[pockettts-gpu] plus CUDA PyTorch and the pinned GPU fork | pocket-tts package or CUDA fork | CPU-oriented voice cloning path plus optional CUDA fork engine. |
NeuTTSEngine | Local neural | realtimetts[neutts], optional neutts-gguf | neutts[llama,onnx] for GGUF streaming | Voice cloning with reference audio. |
ZipVoiceEngine | Local neural | realtimetts[zipvoice] plus checkout | ZipVoice checkout/assets or Docker example | Use distill with at least 3 steps for fast quality work. |
LuxTTSEngine | Local neural | realtimetts[luxtts] | LuxTTS stack and model assets | Full-waveform local voice cloning. |
ChatterboxEngine | Local neural | realtimetts[chatterbox] | chatterbox-tts, reference WAV | Full-waveform prompt-audio workflow. |
SoproTTSEngine | Local neural | realtimetts[sopro] | Sopro package, optional HF cache | Native streaming reference-audio workflow. |
SopranoEngine | Local neural | realtimetts[soprano] | Soprano package/model assets | Single-voice English streaming. |
MossTTSEngine | Local neural | realtimetts[moss] plus runtime assets | MOSS-TTS-Nano assets, CUDA/CUDNN depending on backend | Nano ONNX/torch paths documented; Realtime variant blocked. |
Fallback Engines
You can pass a list of engines. RealtimeTTS starts with the first one and can switch when synthesis fails.
from RealtimeTTS import TextToAudioStream, SystemEngine, GTTSEngine
if __name__ == "__main__":
stream = TextToAudioStream([GTTSEngine(), SystemEngine()])
stream.feed("Try one engine, then fall back if needed.")
stream.play()
Fallbacks work best when engines accept compatible text, voices, and output expectations. Avoid mixing engines that require unrelated voice objects unless you handle voice selection per engine.
Licensing
The RealtimeTTS source is MIT licensed, but engine providers, model weights, voice data, and generated audio can carry separate restrictions. Check provider terms before commercial use.