Voice AI no longer needs a subscription or a cloud API. In 2026 you can dictate into any app, generate natural speech and run a full speech-to-text and text-to-speech server on your own machine, often without a GPU.
Three open-source repos cover the jobs most developers care about:
- OpenWhispr: private voice dictation and meeting notes on your desktop, a free alternative to WisprFlow and Granola.
- Kitten TTS: small, fast text-to-speech models with voice cloning that run on a CPU.
- LocalAI: one self-hosted server for LLMs, transcription and speech, compatible with the OpenAI, Anthropic and ElevenLabs APIs.
Below: what each one does, the setup commands from their READMEs, and which to pick. The full list, including real-time voice agents, is on our best AI repos for voice and speech page.
Quick answer
| You want to... | Use |
|---|---|
| Talk instead of type, in any app, with nothing leaving your computer | OpenWhispr |
| Add a voice to your Python app or content pipeline | Kitten TTS |
| Replace cloud AI APIs (chat, transcription, speech) with one local server | LocalAI |
1. OpenWhispr: dictation into any app
OpenWhispr works like this: press a hotkey, speak, and your words appear at your cursor. Transcription can run fully offline with local models such as Whisper and NVIDIA Parakeet, or through a cloud provider if you prefer. It runs on macOS, Windows and Linux.
For a developer the dictation use case is bigger than it sounds. Long prompts for Claude Code, ChatGPT or Cursor are much faster to speak than to type, and OpenWhispr pastes straight into the terminal or chat box you have focused.
Install on macOS (or x86_64 Linux) with the community Homebrew cask:
brew install --cask openwhispr
Or download the .dmg, .exe, .AppImage, .deb or .rpm from the GitHub releases page. To run it from source (Node.js 24+):
git clone https://github.com/OpenWhispr/openwhispr.git
cd openwhispr
npm install
npm run dev
Features worth knowing, per the README:
- Dictation translation: a separate hotkey to speak in one language and paste in another.
- Voice assistant hotkey: what you say goes straight to GPT-5, Claude, Gemini or a local model as a command; highlighted text is edited in place.
- Meeting transcription for Zoom, Teams and FaceTime, with on-device speaker labels.
- GPU-accelerated local Whisper on Metal, CUDA and Vulkan.
- An MCP server so your AI assistant can read your notes and transcripts.
One caveat from the README: on Intel Macs, live speaker identification is unavailable, though meetings still record and transcribe.
Our step-by-step card: dictate into any app privately. OpenWhispr is MIT licensed.
2. Kitten TTS: realistic speech from a pip install
Kitten TTS is a family of text-to-speech models. The flagship, Kitten-TTS 2, is a 1.7B-parameter, 1-bit model with voice cloning and expression control, and the README says it runs in real time on CPUs and consumer GPUs. There are also tiny ONNX models from 15M to 80M parameters (25 MB to 80 MB) for when size matters more than quality.
Requirements from the README: Python 3.10+, and either a CUDA GPU with about 8 GB free or a CPU with about 6 GB of RAM.
pip install kittenml
Generate speech:
from kittenml import KittenTTS
import soundfile as sf
m = KittenTTS("KittenML/kitten-tts-2")
audio = m.generate("Hi! Nice to meet you.", voice="Bruno")
sf.write("output.wav", audio, m.sample_rate)
Or write straight to a file:
m.generate_to_file("Hello, world.", "output.wav", voice="Bruno")
Useful options:
-
115 built-in voices (
m.available_voiceslists them) across 20 languages. -
Half-size download with
KittenTTS("KittenML/kitten-tts-2", weights="emb4"), 492 MB instead of 954 MB, at a small quality cost. -
Presets such as
preset="expressive"to trade stability for expressiveness. -
Voice cloning from 5 to 30 seconds of audio, no fine-tuning:
m.generate("This is my own voice, cloned.", reference="my_voice.wav").
Faster paths for specific hardware:
# Apple silicon
pip install "kittenml[mlx]"
# Fastest CPU path (C++ engine, beta)
pip install kitten_tts_cpp
With MLX installed, pass backend="mlx" to the constructor.
Only clone voices you have permission to use. Our card for this: add local TTS to a Python app.
3. LocalAI: the whole voice stack behind one API
If you are building an app and want to swap a cloud API for something you host, LocalAI is the broadest option. It runs LLMs, vision, image, video and voice models on any hardware, with no GPU required, and offers drop-in compatibility with the OpenAI, Anthropic and ElevenLabs APIs. For voice, its backends include whisper.cpp and parakeet.cpp for transcription and several TTS engines, and recent releases added diarization and a Realtime API for speech-to-speech.
The fastest start is the CPU container:
docker run -ti --name local-ai -p 8080:8080 localai/localai:latest
With an NVIDIA GPU:
docker run -ti --name local-ai -p 8080:8080 --gpus all localai/localai:latest-gpu-nvidia-cuda-12
There are images for AMD (ROCm), Intel and Vulkan too, plus a macOS app. Load a model from the gallery, Hugging Face or even the Ollama registry:
local-ai run llama-3.2-1b-instruct:q4_k_m
local-ai run ollama://gemma:2b
And chat with it from a second terminal:
local-ai chat --model llama-3.2-1b-instruct:q4_k_m
Because the server speaks the OpenAI format on port 8080, existing client code usually only needs its base URL changed. Backends are pulled on demand, so you only download what your models need. If local models are your main interest, our best AI repos for running LLMs locally page compares LocalAI with the alternatives.
How to choose
- You personally want to type less: OpenWhispr. Install the app, set a hotkey, done. It is the one on this list you will use every day.
- You need speech output in something you build: Kitten TTS. A pip install and five lines of Python, and it runs on a laptop CPU.
- You need a private backend that replaces several cloud APIs at once: LocalAI. More setup, but one server covers chat, transcription and speech.
A practical combination: OpenWhispr for your own dictation, and LocalAI or Kitten TTS inside the product you are shipping.
Tips
- Local transcription quality depends on the model size you pick. Start small, move up if accuracy is not good enough.
- For TTS in production, cache generated audio for repeated phrases instead of regenerating it.
- Keep audio and transcripts local by default if they contain anything sensitive; all three tools make that the easy path.
Get one email every Monday with the week's hottest AI repos and exactly how to use them: subscribe free at dedupedai.com
Top comments (0)