★ Reading this for free? Get 20 structured AI courses + per-chapter AI tutor — the first chapter of every course free, no card.Start free in 30 seconds
Voice AI

Build a Local Voice Assistant: The 2026 Speech-to-Speech Stack

July 20, 2026
11 min read
LocalAimaster Research Team

Want to go deeper than this article?

Free account unlocks the first chapter of all 22 courses — RAG, agents, MCP, voice AI, MLOps, real GitHub repos.

📚AI Learning Path

Voice working locally? Build the whole pipeline. Whisper, TTS, and voice cloning wired into real projects — hands-on courses. First chapter free, no card.

Start free
Or own it for life — Lifetime $149, pay once

The best local speech-to-speech stack in 2026 is Hugging Face's open speech-to-speech pipeline: Silero VAD v5 for voice detection, NVIDIA Parakeet TDT for transcription, a local LLM served by llama.cpp or vLLM, and Qwen3-TTS or Kokoro-82M for speech output. One pip install; every stage can run on your own hardware, behind an OpenAI Realtime-compatible API.

That's the short answer. The longer one: on July 1, 2026, Hugging Face and Cerebras open-sourced a production voice-agent pipeline — the same one HF says already powers 9,000+ Reachy Mini robots — and the repo explicitly supports swapping every cloud piece for a local one. This page is the successor to our Whisper + Ollama + Piper build: same goal, far less duct tape.


The 2026 Stack at a Glance {#the-stack}

StageHosted default (HF + Cerebras)Fully-local swap
Voice activity detectionSilero VAD v5Silero VAD v5 (already local)
Speech-to-text (ASR)NVIDIA Parakeet TDTParakeet TDT, or Whisper / Faster-Whisper / MLX variants
LLMGemma 4 31B on Cerebras inferencellama.cpp or vLLM (e.g. Gemma 4 E4B GGUF)
Text-to-speechQwen3-TTSQwen3-TTS, Kokoro-82M, Pocket TTS, ChatTTS, or MMS
API surfaceOpenAI Realtime-compatible WebSocketSame — it's the pipeline, not the cloud

The design decision that matters: the LLM slot is swappable by construction. The hosted demo talks to Cerebras; your build talks to a llama.cpp server on 127.0.0.1. Nothing else changes.


Reading articles is good. Building is better.

Free account = 20+ free chapters across 22 courses, with a per-chapter AI tutor. No card. Cancel anytime if you ever upgrade.

What HF + Cerebras Shipped {#what-shipped}

On July 1, 2026, Hugging Face published the pipeline with Cerebras as the launch inference partner. The chain is Silero VAD v5 → Parakeet TDT → Gemma 4 31B (on Cerebras, explicitly swappable) → Qwen3-TTS, exposed through an OpenAI Realtime-compatible WebSocket API.

Two things make this more than another demo repo:

  1. It's deployed, not hypothetical. HF states the pipeline already powers 9,000+ Reachy Mini robots in the field.
  2. It's maintained. The repo (huggingface/speech-to-speech) is on release v0.2.10 as of June 11, 2026, with pip extras for every optional component.

The Realtime-compatible API is the quiet win. Any client written against OpenAI's Realtime WebSocket protocol can point at your box instead. You get the ecosystem's tooling with none of its telemetry.


The Fully-Local Swap {#fully-local}

The repo documents local options for every stage:

  • ASR: Parakeet TDT (the default, and the right call for European languages — more below), or Whisper, Faster-Whisper, and MLX Whisper variants via --stt.
  • LLM: a llama.cpp or vLLM server speaking the OpenAI API. The README's own local example uses the Gemma 4 E4B GGUF — the small sibling of the hosted 31B. See our Gemma 4 breakdown for how E4B compares.
  • TTS: Qwen3-TTS for quality and voice control, or Kokoro-82M when you want TTS to cost basically nothing. Pocket TTS, ChatTTS, and MMS are also wired in via --tts.

No stage phones home. The only network traffic in a full-local run is your microphone audio crossing localhost.


Install and Run {#install}

Commands below are taken verbatim from the repo README. Install:

pip install speech-to-speech

Optional components ship as extras — for example:

pip install "speech-to-speech[kokoro]"
pip install "speech-to-speech[faster-whisper]"

Or from source:

git clone https://github.com/huggingface/speech-to-speech.git
cd speech-to-speech
uv sync

Heads up on the default: running bare speech-to-speech uses the OpenAI Responses API (default model gpt-5.4-mini), which needs OPENAI_API_KEY set. That's the cloud path. For local, point it at your own server.

Fully local with llama.cpp (the README's example, using the Gemma 4 E4B GGUF):

speech-to-speech \
    --model_name "ggml-org/gemma-4-E4B-it-GGUF" \
    --responses_api_base_url "http://127.0.0.1:8080/v1" \
    --responses_api_api_key ""

Fully local with vLLM:

speech-to-speech \
    --llm_backend chat-completions \
    --model_name "Qwen/Qwen3-4B-Instruct-2507" \
    --responses_api_base_url "http://localhost:8000/v1"

On a Mac:

speech-to-speech --local_mac_optimal_settings

Add --model_name "mlx-community/Qwen3-4B-Instruct-2507-bf16" to pick a specific MLX model, and use the [whisper-mlx] / [mlx-lm] extras plus --llm_backend mlx-lm for the Apple-Silicon-native path.

Serving other devices: run speech-to-speech --mode websocket --ws_host 0.0.0.0 --ws_port 8765 for the Realtime-compatible WebSocket, or --mode socket --recv_host 0.0.0.0 --send_host 0.0.0.0 with python scripts/listen_and_play.py --host <IP address of your server> as the thin client.

Component selection is one flag each: --stt parakeet-tdt (or whisper, faster-whisper, whisper-mlx, paraformer) and --tts qwen3 (or kokoro, pocket, chattts, facebook-mms).

What about Ollama? Not documented in the README — llama.cpp and vLLM are the supported local backends. But the chat-completions backend accepts any OpenAI-compatible base URL, and Ollama serves one, so pointing --responses_api_base_url at your Ollama /v1 endpoint is the obvious unofficial route. If it misbehaves, fall back to the documented llama.cpp example.


Reading articles is good. Building is better.

Free account = 20+ free chapters across 22 courses, with a per-chapter AI tutor. No card. Cancel anytime if you ever upgrade.

Hardware: What You Need {#hardware}

Honest version: the LLM is the whole hardware question. Parakeet is a 600M-parameter model. Qwen3-TTS starts at 0.6B. Kokoro is 82M and CPU-friendly. The speech stages fit on almost anything; your LLM choice sets the bill.

TierLLM recipeSpeech stages
CPU-only / mini PCSmall quantized model on llama.cppParakeet + Kokoro-82M
Single consumer GPUGemma 4 E4B GGUF (the README's pick)Parakeet + Qwen3-TTS 0.6B
Big GPU / workstationLarger models, or Qwen3-TTS 1.7B for better outputFull stack, no compromises
Apple Silicon--local_mac_optimal_settings + MLX modelMLX Whisper variants available

Gemma 4 31B — the model the hosted demo runs on Cerebras — needs a big GPU to run locally. Most readers should not try; E4B exists precisely for this. We're deliberately not quoting tokens-per-second figures here because they depend entirely on which LLM and quant you pick.


Component Deep-Dive {#components}

Parakeet TDT 0.6B v3 — the ASR

NVIDIA's 600M-parameter transcription model, and the reason this pipeline feels fast. Facts: 25 European languages, automatic language detection, ~6.34% average word error rate, and the highest throughput among multilingual models on the HF Open ASR Leaderboard. If your users speak a language outside those 25, swap in Whisper or Faster-Whisper with one flag.

Qwen3-TTS — the voice

Released January 22, 2026 under Apache 2.0, in 0.6B and 1.7B sizes on the 12Hz tokenizer. Three variants, and the naming is literal: Base does voice cloning, CustomVoice ships preset speakers, VoiceDesign builds a voice from a text instruction. For where it sits against everything else, see our local TTS model roundup and our Chatterbox Multilingual v3 writeup.

Kokoro-82M — the fallback

82M parameters, 6 languages, runs on CPU. This is the "my GPU is fully occupied by the LLM" option, and for a lot of assistant builds it's all you need. Setup guide: Kokoro TTS local install.

Worth watching: Nemotron 3.5 ASR Streaming 0.6B

Announced June 4, 2026: 40 language-locales in one 600M cache-aware streaming model, with configurable chunk sizes from 80 to 1120ms. NVIDIA's own benchmarks claim sub-100ms end-of-utterance latency and roughly 17x more concurrent streams — vendor numbers, so treat them as a ceiling, not a promise. It's not the pipeline default today, but it's the obvious candidate for true streaming ASR in this slot.


vs Whisper + Ollama + Piper {#vs-old-stack}

Our 2025 build glued faster-whisper, Ollama, and Piper together with hand-written Python. It works, and if yours is running, nothing forces a migration. Here's what actually changed:

DIY 2025 stackHF speech-to-speech (2026)
Glue codeYours to write and maintainMaintained upstream (v0.2.10)
ASRfaster-whisperParakeet TDT default; Whisper variants still supported
TTSPiperQwen3-TTS (cloning, voice design) or Kokoro
APIWhatever you builtOpenAI Realtime-compatible WebSocket
Swapping partsEdit your codeOne CLI flag
Field-testedYour desk9,000+ Reachy Mini robots

The real upgrade isn't any single model — it's that component choice became a flag instead of a refactor.


Verdict {#verdict}

If you're building a local voice assistant in 2026, start from pip install speech-to-speech, not from scratch. The pipeline is open, deployed at real scale, and designed for the local swap: Parakeet for ears, your llama.cpp or vLLM model for the brain, Qwen3-TTS or Kokoro for the mouth. The one honest caveat: the out-of-the-box default is a cloud LLM, so the local build is a deliberate three-flag choice — copy the llama.cpp example above and you're offline. Budget your hardware around the LLM; the speech models are a rounding error.


Sources {#sources}


FAQ {#faq}

🎯
AI Learning Path

Voice working locally? Build the whole pipeline.

Whisper, TTS, and voice cloning wired into real projects — hands-on courses. First chapter free, no card.

Or own it for life — Lifetime $149 $599, pay once

Liked this? 20 full AI courses are waiting.

From fundamentals to RAG, agents, MCP servers, voice AI, and production deployment with real GitHub repos. First chapter free, every course.

Reading now
Join the discussion

LocalAimaster Research Team

Creator of Local AI Master. I've built datasets with over 77,000 examples and trained AI models from scratch. Now I help people achieve AI independence through local AI mastery.

Build Real AI on Your Machine

RAG, agents, NLP, vision, and MLOps - chapters across 22 courses that take you from reading about AI to building AI.

Want structured AI education?

22 courses, 519+ chapters, from $9. Understand AI, don't just use it.

AI Learning Path
More on Local Voice & Speech
See the full Coqui TTS & Local Voice AI guide.

Comments (0)

No comments yet. Be the first to share your thoughts!

What is the best local speech-to-speech stack in 2026?

The Hugging Face speech-to-speech pipeline (open-sourced with Cerebras on July 1, 2026) is the current reference stack: Silero VAD v5 for voice activity detection, NVIDIA Parakeet TDT for transcription, any local LLM served by llama.cpp or vLLM, and Qwen3-TTS or Kokoro-82M for speech output. It installs with one pip command, exposes an OpenAI Realtime-compatible WebSocket API, and every stage can run on your own hardware.

Can I use Ollama as the LLM for a local voice assistant?

The repo's README documents llama.cpp and vLLM as the local LLM backends, not Ollama. But the LLM slot just speaks the OpenAI API: the chat-completions backend takes any OpenAI-compatible base URL via --responses_api_base_url, and Ollama exposes an OpenAI-compatible /v1 endpoint. In practice, point the flag at your Ollama server and set --model_name to a model you have pulled. If you want the documented path, the llama.cpp example (ggml-org/gemma-4-E4B-it-GGUF) is copy-paste ready.

What is Parakeet ASR and is it better than Whisper?

Parakeet TDT 0.6B v3 is NVIDIA's 600M-parameter speech recognition model. It covers 25 European languages with automatic language detection, averages ~6.34% word error rate, and has the highest throughput among multilingual models on the Hugging Face Open ASR Leaderboard. It is the pipeline's default ASR. Whisper and Faster-Whisper remain supported via the --stt flag if you need their broader language coverage.

How much hardware do I need to run speech-to-speech locally?

Less than you would guess for everything except the LLM. Parakeet is 600M parameters, Qwen3-TTS starts at 0.6B, and Kokoro-82M runs on CPU. The LLM dominates: Gemma 4 31B (the hosted default's model) needs a big GPU locally, so the practical local recipe is the smaller Gemma 4 E4B GGUF on llama.cpp, or any similar-size model you already run. Total requirements depend almost entirely on your LLM choice.

How do I run the Hugging Face speech-to-speech pipeline?

pip install speech-to-speech, then run the speech-to-speech command. With no flags it defaults to a cloud LLM (gpt-5.4-mini via the OpenAI Responses API, so it needs OPENAI_API_KEY). For fully local, add --responses_api_base_url pointing at a llama.cpp or vLLM server, pick --stt parakeet-tdt, and pick --tts qwen3 or --tts kokoro. On a Mac, run speech-to-speech --local_mac_optimal_settings.

Does the speech-to-speech pipeline work on a Mac?

Yes. The README ships a dedicated flag: speech-to-speech --local_mac_optimal_settings, which selects Apple-Silicon-friendly components, and you can pass an MLX model with --model_name, e.g. mlx-community/Qwen3-4B-Instruct-2507-bf16. There are also MLX extras (pip install "speech-to-speech[whisper-mlx]" and [mlx-lm]) plus an --llm_backend mlx-lm option.

Should I replace my Whisper + Ollama + Piper voice assistant?

If your current stack works, it still works. But the 2026 pipeline gives you three upgrades for one pip install: Parakeet TDT has the highest throughput among multilingual models on the HF Open ASR Leaderboard at ~6.34% average WER, Qwen3-TTS adds voice cloning and instruction-based voice design under Apache 2.0, and the OpenAI Realtime-compatible WebSocket API means clients built for the Realtime API connect to your local server unchanged. The glue code you hand-wrote is now maintained upstream.

Ready to Go Beyond Tutorials?

20 structured courses with hands-on chapters - build RAG chatbots, AI agents, and ML pipelines on your own hardware.

Was this helpful?

📅 Published: July 20, 2026🔄 Last Updated: July 20, 2026✓ Manually Reviewed
LM

Written by the Local AI Master Team

The team behind Local AI Master

We build Local AI Master around practical, testable local AI workflows: model selection, hardware planning, RAG systems, agents, and MLOps. The goal is to turn scattered tutorials into a structured learning path you can follow on your own hardware.

✓ Local AI Curriculum✓ Hands-On Projects✓ Open Source Contributor
📚
Free · no account required

Grab the AI Starter Kit — career roadmap, cheat sheet, setup guide

No spam. Unsubscribe with one click.

🎯
AI Learning Path

Go from reading about AI to building with AI

20 structured courses. Hands-on projects. Runs on your machine. Start free.

Or own it for life — Lifetime $149 $599, pay once
Free Tools & Calculators