Skip to main content
NeuralCleave supports multiple STT (speech-to-text) and TTS (text-to-speech) backends. The defaults work fully offline.

STT backends

faster-whisper (default, local)

faster-whisper is a CTranslate2-optimized Whisper implementation. It runs on CPU or CUDA, requires no API key, and is completely local.
Model sizes: Start with base. Models are downloaded automatically on first use.

Disable STT

TTS backends

NeuralCleave always tries ElevenLabs → Kokoro → pyttsx3, in that order, using whichever provider succeeds first (ElevenLabs is skipped automatically when no API key is configured). tts_engine only gates whether TTS is enabled at all (any value other than "none" turns it on) — it does not currently pin synthesis to one specific engine or change the try-order, despite the name. Setting it to "kokoro" or "pyttsx3" does not skip ElevenLabs if a key happens to be configured.

Kokoro (local, high quality)

Kokoro is an open-source neural TTS model. It runs on CPU and produces near-ElevenLabs quality without any API key.
There is no config key for selecting a Kokoro voice yet — TTSEngine always uses its "af_sarah" default, and [voice] has no field that reaches it.

ElevenLabs (cloud, best quality)

Find voice IDs at elevenlabs.io/voice-library.

pyttsx3 (local, system TTS)

Fallback that uses the OS text-to-speech engine. No install required.

Disable TTS

Audio devices

Configure input/output devices to route audio correctly on systems with multiple devices:
The Settings → Voice page in the dashboard shows a live dropdown of available devices populated from GET /api/v1/voice/devices.

Privacy note

Privacy mode (the in-chat /privacy on|off command) only affects text generation — it forces ModelRouter onto local-only models and has no effect on the voice pipeline at all. It does not force TTS to Kokoro or stop ElevenLabs from being used, and there is no privacy_mode entry in [voice] or anywhere else in config.py — it isn’t a config setting. To keep voice fully local today, don’t configure elevenlabs_api_key and leave tts_engine set to "kokoro" or "pyttsx3".