Local voice models: speech-to-text, text-to-speech and full duplex
Every part of a voice assistant now runs on your own hardware. Qwen3-ASR 1.7B transcribes English with the lowest error rate of the open models on the Open ASR Leaderboard (5.40%, 25 October 2026), Kokoro 82M reads text aloud on a laptop CPU under Apache-2.0, and MiniCPM-o 4.5 listens and speaks at once on a desktop GPU. The licence on the weights decides what you can ship, so every row below shows it.
Written by Jakub Rusinowski · Last updated
Pick one model per row: a listener, your local LLM, a speaker — or one full-duplex model that does all three.
By what it does
Every model
The licence column is the licence on the weights, read from each model card — not the badge on the code repository. Memory is what the maker or a named source publishes, not a measurement and not a fit verdict.
29 of 29 models
| Model | Type | Hardware tier | Licence (weights) | Clones a voice | CPU only | Languages | Runtimes | Published memory |
|---|---|---|---|---|---|---|---|---|
| Whisper large-v3-turbo OpenAI · 809M | Speech-to-text | 8 GB GPU / 16 GB Mac No GPU | C MIT Commercial use allowed | — | Yes | 90 | whisper.cpp faster-whisper WhisperKit | Not published |
| Qwen3-ASR 1.7B Alibaba Qwen · 1.7B | Speech-to-text | 16–24 GB GPU / 32 GB+ Mac 8 GB GPU / 16 GB Mac | C Apache-2.0 Commercial use allowed | — | — | 52 | Transformers vLLM FunASR | Not published |
| Qwen3-ASR 0.6B Alibaba Qwen · 0.6B | Speech-to-text | 8 GB GPU / 16 GB Mac No GPU | C Apache-2.0 Commercial use allowed | — | — | 52 | Transformers vLLM FunASR | Not published |
| Cohere Transcribe Cohere Labs · 2B | Speech-to-text | 16–24 GB GPU / 32 GB+ Mac 8 GB GPU / 16 GB Mac | C Apache-2.0 Commercial use allowed | — | — | 14 | Transformers vLLM | Not published |
| Canary-Qwen 2.5B NVIDIA · 2.5B | Speech-to-text | 16–24 GB GPU / 32 GB+ Mac | C CC-BY-4.0 — Attribution required. Commercial use allowed | — | — | 1 | NeMo | Not published |
| Parakeet TDT v3 NVIDIA · 0.6B | Speech-to-text | 8 GB GPU / 16 GB Mac | C CC-BY-4.0 — Attribution required. Commercial use allowed | — | — | 25 | NeMo Transformers | ~2 GB (published by NVIDIA (model card)) At least 2 GB RAM to load (card). |
| Moonshine v2 Moonshine AI | Speech-to-text | No GPU | C MIT Commercial use allowed | — | Yes | — | ONNX (Moonshine Voice) Transformers | Not published |
| Fun-ASR-Nano FunAudioLLM (Alibaba Tongyi) · Qwen3-0.6B decoder + encoder | Speech-to-text | No GPU 8 GB GPU / 16 GB Mac | C Apache-2.0 Commercial use allowed | — | Yes | 31 | FunASR llama.cpp runtime (single binary, no Python) vLLM | ~0.95 GB (published by nile2000 on Hugging Face) single source encoder f16 470 MB + Qwen3-0.6B q4_K_M 484 MB GGUF |
| VoiceChat 11B NVIDIA · 11B | Speech-to-speech | Server GPU (rent) | C OpenMDW-1.1 Commercial use allowed | — | No | — | vLLM NeMo Speech | Not published |
| MiniCPM-o 4.5 OpenBMB / ModelBest · 9B | Speech-to-speech | 16–24 GB GPU / 32 GB+ Mac 8 GB GPU / 16 GB Mac | C Apache-2.0 Commercial use allowed | — | Yes | — | llama.cpp-omni Ollama (per card) vLLM | ~12 GB (published by OpenBMB / ModelBest (model card)) Full-duplex through llama.cpp-omni: an NVIDIA GPU with at least 12 GB, or an Apple M4 Max with at least 24 GB (card). llama.cpp-omni lists the full omni stack at Q4_K_M as ~8 GB model / ~9 GB peak on NVIDIA. |
| Moshi Kyutai | Speech-to-speech | 16–24 GB GPU / 32 GB+ Mac | C CC-BY-4.0 — Attribution required; the card forbids impersonation. Commercial use allowed | No | No | — | official demo server | Not published |
| Kokoro 82M hexgrad · 82M | Text-to-speech | No GPU 8 GB GPU / 16 GB Mac | C Apache-2.0 Commercial use allowed | No | Yes | 8 | kokoro-onnx Kokoro-FastAPI LocalAI | ~2 GB (published by Pinggy Blog) single source under 2 GB VRAM, or ~4 GB RAM CPU-only via ONNX |
| Piper Open Home Foundation (OHF-Voice) | Text-to-speech | No GPU | ? per voice (code GPL-3.0) Not stated — read the model card | No | Yes | — | piper CLI Home Assistant Wyoming LocalAI | Not published |
| Pocket TTS Kyutai · 100M | Text-to-speech | No GPU | C CC-BY-4.0 — Attribution required. Commercial use allowed | Yes | Yes | 6 | pocket-tts (pip/uvx) ONNX INT8 export browser (WASM) | Not published |
| Qwen3-TTS Alibaba Qwen · 0.6B / 1.7B | Text-to-speech | 8 GB GPU / 16 GB Mac | C Apache-2.0 Commercial use allowed | Yes | — | 10 | vLLM-Omni LocalAI Transformers | ~4.54 GB (published by Pinggy Blog) single source 1.7B download 4.54 GB; 0.6B 2.52 GB |
| Chatterbox Resemble AI · 0.5B (Turbo 350M) | Text-to-speech | 8 GB GPU / 16 GB Mac | C MIT Commercial use allowed | Yes | — | 23 | pip chatterbox-tts LocalAI | Not published |
| VoxCPM2 OpenBMB · 2B | Text-to-speech | 16–24 GB GPU / 32 GB+ Mac No GPU | C Apache-2.0 Commercial use allowed | Yes | Yes | 30 | llama.cpp-omni (GGUF on CPU/Metal/CUDA/Vulkan) vLLM-Omni PyTorch | ~8 GB (published by OpenBMB (model card)) ~8 GB VRAM (card). |
| Step Audio EditX StepFun · 3B | Text-to-speech | 16–24 GB GPU / 32 GB+ Mac | ? not stated (code Apache-2.0) Not stated — read the model card | Yes | No | 6 | vLLM | ~12 GB (published by StepFun (model card)) 12 GB GPU memory is "a critical value"; 16 GB is safer (card). |
| Voxtral TTS Mistral AI · ~4B | Text-to-speech | 16–24 GB GPU / 32 GB+ Mac | NC CC-BY-NC-4.0 Non-commercial only | Yes | No | 9 | vLLM-Omni | ~16 GB (published by Mistral AI (model card)) A single GPU with at least 16 GB (card: BF16 weights). |
| Fish S2 Pro Fish Audio · ~4.4B (HF lists 5B) | Text-to-speech | Server GPU (rent) 16–24 GB GPU / 32 GB+ Mac | NC Fish Audio Research License Non-commercial only | Yes | No | 80 | SGLang-Omni vLLM-Omni | Not published |
| Breeze TTS 2 BreezeBlue (RESONIA) · 3B | Text-to-speech | 16–24 GB GPU / 32 GB+ Mac | NC BreezeBlue Research and Non-Commercial License Non-commercial only | Yes | No | 2 | PyTorch CLI Docker | ~12 GB (published by BreezeBlue (RESONIA) (model card)) ~7.7 GiB eager; 12 GB GPU minimum, 24 GB for the --fast-all path (card). |
| Higgs Audio V3 Boson AI · 4B | Text-to-speech | Server GPU (rent) 16–24 GB GPU / 32 GB+ Mac | NC Boson Higgs TTS 3 Research and Non-Commercial License Non-commercial only | Yes | No | 100 | SGLang-Omni | Not published |
| Magpie 357M NVIDIA · 364M (per card) | Text-to-speech | 8 GB GPU / 16 GB Mac | C NVIDIA Open Model License Commercial use allowed | No | — | 12 | NeMo | Not published |
| OmniVoice k2-fsa · 0.6B | Text-to-speech | 8 GB GPU / 16 GB Mac | NC CC-BY-NC Non-commercial only | Yes | — | 600 | vLLM-Omni | Not published |
| Fun-CosyVoice3 0.5B FunAudioLLM · 0.5B | Text-to-speech | 8 GB GPU / 16 GB Mac | C Apache-2.0 Commercial use allowed | Yes | — | — | vLLM-Omni | Not published |
| Granite Speech 5.0 IBM · 2B | Speech-to-text | 8 GB GPU / 16 GB Mac | C Apache-2.0 Commercial use allowed | — | — | 6 | Transformers vLLM | Not published |
| Fish Drama 3 Fish Audio · 35B total, 3B active (MoE) | Text-to-speech | Server GPU (rent) | C* Fish Audio Community License — Commercial use only below an annual-revenue threshold; never as a hosted service. Commercial use with conditions | Yes | No | — | SGLang-Omni vLLM-Omni | Not published |
| Ming-3.0-tts 0.5B inclusionAI (Ant Group) · 0.5B | Text-to-speech | 8 GB GPU / 16 GB Mac | C MIT Commercial use allowed | Yes | — | 7 | Ming-3.0-tts repository (PyTorch) | Not published |
| Phonon 31M Gradium · 31M | Text-to-speech | No GPU 8 GB GPU / 16 GB Mac | C Apache-2.0 Commercial use allowed | — | Yes | 1 | Ollama 0.40.11+ (Apple Silicon) | Not published |
No model matches these filters.
Download the data (JSON: every row, its licence, published memory and sources, with the date each was checked).
Announced, not downloadable yet
Dessa (Block): Announced, not downloadable: waitlist only, "launch links are coming soon". Trained from scratch on speech (no text, no pretrained models). Single source (Block). Listed so readers know it exists; excluded from the table filters. Block ↗
LLMs that hear you but answer in text
Some models in our library take audio directly — Gemma 4 and Nemotron 3 Nano Omni among them. They catch tone a transcript loses, but they reply in text, so you still need a text-to-speech model for the voice. Size them in the analyzer like any other LLM.
Sources: model cards on Hugging Face, the Open ASR Leaderboard, the Artificial Analysis Speech Arena and the Open TTS Leaderboard. Checked 25 October 2026.
Frequently asked questions
Can I run a voice assistant completely offline?
Yes. Speech-to-text, the LLM in the middle and text-to-speech all run locally; you need the internet only to download the models. The offline voice assistant guide wires Whisper, an Ollama model and Piper together.
Do I need a GPU for local voice AI?
No. Whisper large-v3-turbo, Moonshine v2, Fun-ASR-Nano, MiniCPM-o 4.5, Kokoro 82M are listed as running on a CPU. A GPU helps for the larger cloning and full-duplex models.
What does the licence column mean?
It is the licence on the model weights, read from each model card, not the licence badge on the code repository. C means the weights allow commercial use, C* means commercial use with conditions such as a revenue cap, NC means non-commercial only, and ? means the card does not state a licence for the weights.
Why are the memory figures not a fit verdict?
They are what each model’s maker or a named source publishes, not something we measured or computed. A voice chain runs two or three models that share one GPU, so add them up and leave room for the LLM.
Does Ollama run voice models?
Since Ollama 0.40.11 (24 October 2026) it runs one text-to-speech model, Gradium’s Phonon, on Apple Silicon only, at /v1/audio/speech. It has no speech-to-text. llama.cpp’s server has a /tts endpoint and a realtime transcription websocket.