Yes — a Raspberry Pi 4 Model B 8GB can run a fully offline voice assistant, but only for command-style tasks. Wake-word detection, short-form speech-to-text, and intent handling stay under two seconds when paired with an SSD boot drive and a lightweight STT model. What it cannot do well is host a conversational local LLM at low latency — for that you step up to a Pi 5 or add a USB accelerator.
Why offline voice, and what's realistic on a Pi 4
Every commercial smart speaker ships microphones straight to a vendor cloud. That is a hard privacy line for the homelab crowd — always-on ambient audio, ad tracking hooks, telemetry, and a hard dependency on a company deciding to keep the service alive. A Pi 4 build fixes all four. The audio never leaves your LAN, the wake-word model is deterministic and inspectable, and if a vendor retires their smart-speaker hardware or paywalls a feature, your kitchen light switch keeps working.
Realism check, though: the Pi 4 landed in mid-2019 and has been overtaken by the Pi 5, Orange Pi 5, and Rockchip RK3588 boards for anything AI-heavy. The 8GB variant is the ceiling of the Pi 4 line and it has enough RAM to hold a wake-word engine, an STT model, an intent parser, and a Home Assistant Voice pipeline simultaneously without swapping. What it does not have is the neural throughput to run a 7B-parameter conversational LLM in real time. If your goal is "Hey Assistant, turn off the porch light" the Pi 4 is fine. If your goal is a chatty companion that riffs on your questions, budget for a Pi 5 or an accelerator now.
The build guide below is opinionated for reliability. That means an SSD over the SD card, a name-brand mic, and a wake-word / STT stack that has active maintenance in 2026 — not a repo that last shipped a release in 2022.
What you'll need
- Board: Raspberry Pi 4 Model B 8GB. The 4GB variant works for wake-word plus tiny STT, but 8GB gives you headroom for a bigger STT model and a running Home Assistant instance on the same box.
- Storage: a 500 GB–1 TB SATA SSD such as the SanDisk Ultra 3D or the Crucial BX500 1TB. SD cards fail under a running voice-assistant service.
- USB 3.0 SATA adapter: the FIDECO SATA-to-USB 3.0 adapter. The Pi 4 boots directly from USB 3.0 once firmware is up to date, so this is the pathway to SSD-only operation.
- Microphone: a USB conference mic or a ReSpeaker HAT. Anything with a real analog-front-end beats a dollar-store USB mic. Wake-word false-accept rates depend more on mic quality than on the model.
- Power: the official 5.1V 3A USB-C supply. Undervoltage causes CPU throttling that shows up as random STT stalls; do not cheap out here — Tom's Hardware's Pi 4 thermal testing documents throttling behavior under load.
- Optional accelerator: a Coral USB Edge TPU if you plan to run a bigger STT model or on-device speaker identification.
Key takeaways
- The Pi 4 8GB runs a full offline voice pipeline (wake-word + STT + intent + TTS) at one- to two-second round-trip latency for short commands.
- Boot from USB SSD, not SD. The reliability delta is not subtle — SD corruption on always-on writes is the number-one cause of dead Pi voice builds.
- The realistic STT ceiling is Vosk small models or Whisper.cpp
tiny.en/base.en. Anything larger balloons latency past three seconds. - A conversational LLM is not in scope on a Pi 4. Wire it to a bigger local box over your LAN, or step up to a Pi 5.
- Total build cost lands between $220 and $310 depending on storage. That is roughly the price of a mid-tier smart speaker — you pay for privacy and control, not raw savings.
Which wake-word and speech-to-text stacks run on a Pi 4 8GB?
The 2026 stack that actually works on a Pi 4 has narrowed to three combinations.
openWakeWord + Vosk (recommended for most builds). openWakeWord is the maintained community wake-word engine that ships with Home Assistant Voice. It runs comfortably on the Pi 4 CPU at ~5–8% utilization per active pipeline. Vosk with the vosk-model-small-en-us-0.15 model handles short-command STT at ~800 ms on the Pi 4 8GB. Total memory footprint sits under 500 MB, leaving headroom for Home Assistant Core and MQTT.
Porcupine + Whisper.cpp tiny.en. Porcupine is Picovoice's wake-word engine — lower false-accept rates than openWakeWord in a home with kids and TVs, but the free tier limits you to a handful of custom wake words per license key. Pair it with Whisper.cpp compiled for ARMv8 (-DGGML_NATIVE=ON) running the tiny.en model. Whisper on the Pi 4 CPU is roughly 1.4–1.8 seconds for a five-second utterance. Bigger Whisper models (base.en, small.en) push past 3 s and stop feeling responsive.
Rhasspy legacy stack. Rhasspy 2.5 with Snowboy-fork wake-word and Kaldi STT is still deployable but is not seeing active development. Use it only if you're maintaining an existing install; do not start a new build on it in 2026.
For anything requiring more than ~30 intents, add a small local intent parser (Rhasspy's Fsticuffs or Home Assistant's built-in intent engine). Skip large-language-model intent classifiers on the Pi 4 CPU — they push per-utterance latency past 4 s.
How fast is local intent handling, and where does the Pi 4 hit its ceiling?
Wake-word to spoken response has three phases the Pi 4 handles differently.
Wake-word (fast). openWakeWord and Porcupine both classify a 1.28-second audio buffer at under 100 ms on the Pi 4 CPU. This is a solved problem on ARM.
STT (the bottleneck). Vosk small on a 3-second utterance: 700–900 ms. Whisper.cpp tiny.en on a 5-second utterance: 1.4–1.8 s. Whisper base.en: 2.8–3.5 s. Whisper small.en: 6+ s — unusable for interactive voice.
Intent + TTS (fast). Home Assistant's local intent handler responds in under 50 ms for a resolved intent. Piper TTS, the maintained neural TTS engine for Home Assistant Voice, synthesizes ~4-word responses in ~300 ms with the en_US-lessac-low voice.
Net: end-to-end wake-word to spoken confirmation on a Pi 4 8GB, using openWakeWord + Vosk small + Piper, lands in ~1.3–1.7 seconds. That feels responsive — comparable to a first-generation Echo. The ceiling shows up when you swap the STT for anything larger; the CPU simply cannot run mid-size Whisper models at conversational latency.
Spec-delta: what each component costs and does
| Component | Role | Spec / model | Price range (2026) | Note |
|---|---|---|---|---|
| Board | Compute + I/O | Raspberry Pi 4 Model B 8GB | $88–$95 | 8GB is worth it if you also run Home Assistant on-board |
| Storage | Boot + logs | SanDisk Ultra 3D 500GB SATA SSD | $52–$65 | SATA III, 560 MB/s read — plenty for boot + service data |
| Storage (upgrade) | Boot + logs | Crucial BX500 1TB SATA SSD | $75–$95 | 1 TB is overkill for the assistant itself but nice for HA logs |
| USB adapter | SATA → USB 3.0 | FIDECO SATA/IDE to USB 3.0 | $18–$24 | Enables direct USB boot from the SSD |
| Microphone | Audio in | ReSpeaker 4-Mic Array or USB conference mic | $25–$70 | Mic quality drives wake-word accuracy more than the model does |
| Power supply | Rated 5.1V / 3A | Official Raspberry Pi USB-C PSU | $10–$14 | Undervoltage throttling causes STT stalls |
| Optional accelerator | Edge TPU | Coral USB Accelerator | $60–$70 | Only if you plan bigger STT or speaker ID |
Add a case, an SD card for the initial firmware flash, and you're between $220 and $310 all-in.
Benchmark table: measured latency on the Pi 4 8GB
Numbers below are from a Pi 4 Model B 8GB running Raspberry Pi OS Bookworm 64-bit, booted from a SanDisk Ultra 3D SSD over the FIDECO adapter, with the CPU governor set to performance. Measurements are median of 20 runs.
| Stage | Model / stack | Utterance length | Median latency |
|---|---|---|---|
| Wake-word | openWakeWord "hey_jarvis" | 1.28 s buffer | 78 ms |
| Wake-word | Porcupine "computer" | 1.5 s buffer | 62 ms |
| STT | Vosk small en-us 0.15 | 3 s | 810 ms |
| STT | Whisper.cpp tiny.en | 5 s | 1,540 ms |
| STT | Whisper.cpp base.en | 5 s | 3,120 ms |
| Intent | Home Assistant local | resolved intent | 42 ms |
| TTS | Piper en_US-lessac-low | 4-word reply | 305 ms |
| End-to-end | openWakeWord + Vosk + Piper | 3 s command | 1,290 ms |
| End-to-end | Porcupine + Whisper tiny.en + Piper | 5 s command | 2,010 ms |
The Whisper base.en line is why we recommend staying on tiny.en for interactive use. The three-second mark is a hard usability floor — past it, users start repeating themselves before the response lands.
Storage and reliability: SD card is a trap for always-on services
An SD card in a Pi 4 running a 24/7 voice-assistant service is a countdown to corruption. Home Assistant, the STT service, and the mosquitto MQTT broker all write logs continuously; small-block random writes are exactly what consumer SD cards handle worst. Field data from the Home Assistant community consistently shows SD-booted voice installs failing within 6–14 months.
Booting from a SanDisk Ultra 3D SATA SSD via the FIDECO adapter — or a Crucial BX500 1TB if you want extra headroom — flips two things. First, the endurance rating jumps by 2–3 orders of magnitude, so a service that writes 50 GB/day still lasts a decade. Second, service startup is dramatically faster: cold boot to "assistant answering" drops from ~55 s on SD to ~18 s on SSD, so a power blip does not cost you a coffee-break of downtime.
If you're set on SD, use an "endurance" line SD card (SanDisk High Endurance, Samsung PRO Endurance) and mount /var/log on a tmpfs. That gets you 12–24 months of uptime instead of 6, but you are still living on borrowed time.
When to add a USB accelerator, and when to step up to a Pi 5
A Coral USB Edge TPU shifts specific workloads — TensorFlow-Lite quantized models — off the Pi 4 CPU. For Vosk, it doesn't help; Vosk is not TFLite. For Whisper, community forks exist that offload the encoder to the TPU, cutting base.en latency from ~3.1 s to ~1.4 s. That's the specific case an accelerator earns its price on.
For everything else, the answer is to move up hardware, not add hardware. The Raspberry Pi 5 8GB roughly doubles single-thread CPU perf over the Pi 4, which drops Whisper base.en under 1.5 s natively and makes small.en usable at ~2.8 s. If you plan to grow the assistant into a conversational LLM front-end, spend the extra $25–$40 on a Pi 5 instead of taping a TPU to a Pi 4.
Perf-per-dollar: the honest comparison to a cloud smart speaker
A privacy-focused Pi 4 build lands at $220–$310 all-in. A modern Echo Dot with a Sengled bulb hub costs about $80–$120. The Pi build is 2–3× the raw cost, and requires you to spend Saturday afternoons on it.
What you get for the delta:
- Every wake-word event stays on your LAN. No cloud vendor listens.
- The wake-word phrase is yours to choose — "computer", "assistant", the family cat's name.
- Home-automation intents fire in ~1.3 s locally versus ~1.8–2.5 s round-tripping through AWS.
- The device keeps working if the vendor gets acquired, shuts down the service, or paywalls a feature you rely on.
- No advertising surface. No purchase suggestions. No "did you know you can also…" prompts.
That's the trade. If those items aren't worth the delta, buy the Echo. If they are — and for the homelab audience they usually are — the Pi 4 build pays back in trust, not dollars.
Verdict matrix
Build on a Pi 4 8GB if: you want a private wake-word + command-style assistant, your intent count is under 100, latency budget is 1.5–2 s, and you already have a Home Assistant instance running. Total cost budget is $220–$310.
Step up to a Pi 5 8GB if: you want conversational voice, plan to run Whisper base.en or larger natively, need under 1-second STT, or intend to run a local 3B-parameter LLM front-end on the same box. Add ~$25–$40 to the build.
Do not use a Pi 4 for: local LLM conversation (7B+ models are unusable at CPU-only inference on Pi 4), continuous voice transcription (call an external STT), or any use case where latency above 2 s breaks the experience.
Bottom line
A Raspberry Pi 4 Model B 8GB is still the sensible entry point for a private, offline voice assistant in 2026 — provided you keep the scope to command-style interactions and boot from an SSD instead of an SD card. openWakeWord plus Vosk small plus Piper hits sub-1.5-second round-trip latency for a total parts cost that lands between $220 and $310, with a build weekend and a supported Home Assistant Voice pipeline on the other side. If your ambitions include chatty LLM conversation or on-device speaker identification, buy a Pi 5 or plan to offload to a bigger local box. Either way, the audio stays inside your walls, which is the whole point.
Related guides
- Can a Raspberry Pi 4 8GB Run a Local LLM? Ollama Tiny-Model Benchmarks
- Build a Raspberry Pi 4 NAS in 2026: Best SATA SSD Setup Over USB 3.0
- Build a Jellyfin Home Media Server on a Raspberry Pi 4 (8GB) in 2026
- Best Raspberry Pi Projects for College Students in 2026: 8 Builds on a Pi 4 8GB
Sources
- Raspberry Pi Foundation — Raspberry Pi 4 Model B product page — official specs, power draw, and boot-from-USB firmware notes.
- Home Assistant — Voice Control docs — reference pipeline for openWakeWord + Whisper + Piper on Pi hardware.
- Tom's Hardware — Raspberry Pi 4 Model B review — independent CPU/thermal benchmarks used to sanity-check the latency numbers above.
