Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Yes, a Raspberry Pi can become a private, voice-controlled smart speaker, but the Pi is only the computing part. You also need a microphone, an audio output, Home Assistant OS, and speech services that convert speech to text and text back to speech. The most clearly documented local design uses Home Assistant Assist with Wyoming-connected Speech-to-Phrase or Whisper for speech recognition and Piper for spoken replies.

A Raspberry Pi 4 can host Home Assistant and the local voice pipeline. Alternatively, it can be the audio endpoint while a separate computer on your LAN runs the resource-intensive speech service. The steps below cover both arrangements, including the important trade-off between Speech-to-Phrase’s speed and Whisper’s broader language handling.

What a Raspberry Pi voice assistant actually consists of

A voice assistant is a chain of separate jobs rather than one application:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Listening: a microphone captures your voice.
  • Wake-word detection: the system decides when a command starts, if you use a wake word.
  • Speech-to-text (STT): Speech-to-Phrase or Whisper turns the recording into text.
  • Conversation handling: Home Assistant Assist interprets the text and calls the appropriate device or service.
  • Text-to-speech (TTS): Piper generates spoken audio.
  • Playback: a speaker or other audio output plays the response.

Home Assistant OS coordinates these stages. A Raspberry Pi can run all of them, or it can run Home Assistant while Wyoming services run on another machine. A Pi without a microphone and speaker is not a finished smart speaker; it is a host that still needs an audio endpoint.

#1 Best Overall
NULLLAB 2-Pack NS4168 I2S Audio Amplifier & 3W Speaker Kit
  • Docs: github.com/nulllaborg/i2s_audio_amplifier_module
  • PLUG & PLAY FOR ESP32 & RPI: Includes NS4168 I2S Amp Board, 4Ω 3W Speaker, and PH2.0 DuPont cable. Connect directly via I2S for quick digital audio setup.
  • NCN ANTI-DISTORTION TECH: Built-in Non-Clipping Technology automatically prevents harsh distortion, clipping, and speaker damage under high volume, outperforming MAX98357A.
  • 80% HIGH EFFICIENCY: Class D amplifier delivers 2.5W (5V/4Ω) with low heat generation and 0.2% ultra-low distortion—ideal for battery-powered projects.
  • BUILT-IN HPF & NOISE PROTECTION: Features integrated High-Pass Filter (HPF) and pop-click suppression to eliminate low-frequency noise and Wi-Fi/Bluetooth interference.

Choose the architecture before buying or wiring parts

All-in-one Pi

In the simplest layout, Home Assistant OS, the Wyoming speech services, and the endpoint hardware are on the same Raspberry Pi 4. This keeps audio and speech processing local and avoids dependence on another computer. It also puts every workload on the Pi’s CPU and memory, so the recognition engine matters.

Pi host with a separate voice satellite

Home Assistant can run on the Pi while a voice-activated device supplies the microphone and speaker. The endpoint streams audio to Home Assistant, which performs wake-word detection and command handling. This lets you place the listening device where people actually speak instead of next to the Home Assistant server.

Pi endpoint with a stronger speech server

Wyoming services can run on another computer on the same local network. In this arrangement, the Pi handles audio capture and playback while a more powerful machine runs Whisper or another supported service. In Home Assistant, the remote service is added with that machine’s local hostname or IP address and port. This is the practical choice when you want open-ended transcription but do not want Raspberry Pi 4 latency.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Hardware and network requirements

The official Home Assistant guidance refers specifically to Raspberry Pi 4 performance. It does not prescribe a particular RAM size, storage device, microphone, speaker, case, or power supply, so choose compatible parts for your enclosure and room rather than treating any untested parts list as a recommendation.

  • A Raspberry Pi 4 running Home Assistant OS, if the Pi is the host.
  • Reliable boot storage and a suitable power supply for the Pi.
  • A USB, Bluetooth, or network microphone that your chosen endpoint supports.
  • A speaker or other audio output. The endpoint must be able to play the generated audio.
  • A wired or wireless connection to the same LAN as Home Assistant and any remote Wyoming service.
  • A quiet placement with the microphone separated from the speaker as much as practical.

Use a wired connection for the Home Assistant host when convenient. Voice audio is continuous while a satellite is listening, so weak Wi-Fi can add dropouts even if ordinary dashboard traffic appears reliable.

Rank #2
USB to Audio USB Sound Card with 8Ω 5W Speaker, Driver-Free Plug and Play
  • This is a USB sound card that supports recording and playback, a stereo codec, a built-in microphone, and a speaker. It is suitable for Raspberry Pi/Jetson Nano, driver-free, plug-and-play.
  • "Listening / Speaking" two-in-one: onboard microphone, and speaker header, easy audio input / output
  • Multiple sampling rates support: supported sampling rates including 8K, 11.025K, 12K, 16K, 22.05K, 24K, 32K, 44.1K, and default 48K (Hz)
  • Compatible with Multiple systems Compatible with Win7/8/8.1/10,mac, Linux, Android, WinCE
  • Onboard PWR indicators for operating status. Standard USB 2.0 port, portable size.

Choose Speech-to-Phrase or Whisper

Home Assistant documents two local speech-to-text choices with very different goals. Pick the engine according to the commands you expect to speak, not simply the model name.

Speech-to-text engine Best for Command coverage Pi 4 latency reported by Home Assistant Where it can run
Speech-to-Phrase Fast lights, switches, scenes, climate, and other supported home-control commands Closed-ended; it transcribes a supported subset of Assist commands Under one second on Home Assistant Green or Raspberry Pi 4 Locally on the Home Assistant host
Whisper Open-ended transcription and requests that are not limited to a fixed command grammar Open-ended; attempts to transcribe arbitrary speech Around eight seconds to process incoming voice commands on Raspberry Pi 4 Locally, or as a Wyoming service on a stronger LAN computer

Those timings are Home Assistant’s documentation figures, not an independent benchmark or a guarantee for every language, model, room, or configuration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When Speech-to-Phrase is the better choice

Use Speech-to-Phrase when most requests are direct home control: turning a light on, setting a thermostat, opening a cover, or activating a scene. Its constrained vocabulary is the reason it is fast. If it does not know a phrasing or command, it cannot provide Whisper’s fallback of attempting to transcribe it.

When Whisper is worth the delay

Choose Whisper when you need free-form dictation, varied wording, or an agent that accepts open-ended questions. On a Pi 4, Home Assistant reports about eight seconds for incoming voice commands, which can make a conversational speaker feel unresponsive. Run Whisper on a stronger computer over Wyoming when you need its coverage without placing that delay and CPU load on the Pi.

Install Home Assistant OS and the speech applications

The documented local route starts with Home Assistant OS. Install it on the Pi using the current Raspberry Pi installation procedure, complete the first-boot setup, and connect the host to your LAN. The voice-specific work then happens inside Home Assistant.

Rank #3
NULLLAB NS4168 I2S Audio Amplifier & 3W Speaker Kit
  • Docs: github.com/nulllaborg/i2s_audio_amplifier_module
  • PLUG & PLAY FOR ESP32 & RPI: Includes NS4168 I2S Amp Board, 4Ω 3W Speaker, and PH2.0 DuPont cable. Connect directly via I2S for quick digital audio setup.
  • NCN ANTI-DISTORTION TECH: Built-in Non-Clipping Technology automatically prevents harsh distortion, clipping, and speaker damage under high volume, outperforming MAX98357A.
  • 80% HIGH EFFICIENCY: Class D amplifier delivers 2.5W (5V/4Ω) with low heat generation and 0.2% ultra-low distortion—ideal for battery-powered projects.
  • BUILT-IN HPF & NOISE PROTECTION: Features integrated High-Pass Filter (HPF) and pop-click suppression to eliminate low-frequency noise and Wi-Fi/Bluetooth interference.
  1. Open the Home Assistant application catalog. Install the local speech-to-text application you selected, either Speech-to-Phrase or Whisper, and install the Piper text-to-speech application.
  2. Start each application. Wait for the application status to show that it is running before configuring integrations. Model loading can take longer on the first start.
  3. Check network placement. If an engine is on another computer, verify that the computer and Home Assistant are on the same LAN and note the service’s hostname or IP address and port.
  4. Open Settings > Devices & services. Home Assistant should discover the running Wyoming services. Add the discovered speech engine and Piper integrations.
  5. If a remote service is not discovered, add it manually. Use the Wyoming integration’s host or IP address and port for the computer running the service. Keep that address stable with a DHCP reservation or equivalent LAN configuration.

Wyoming is the protocol Home Assistant uses to connect to services such as speech-to-text, text-to-speech, wake-word detection, and related voice components. A remote service does not need to be installed on the Pi as long as Home Assistant can reach its port on the LAN.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Configure the Assist voice assistant

After the integrations are available, create an Assist configuration and select the matching language and engines.

  1. Go to Settings > Voice assistants.
  2. Create a new assistant.
  3. Select the language you will speak. The recognition model and Piper voice must support that language.
  4. Choose Home Assistant as the conversation agent.
  5. Select your Speech-to-Phrase or Whisper integration as the speech-to-text engine, then choose its language.
  6. Select Piper for text-to-speech and choose a Piper voice in the required language.
  7. Save the assistant configuration.
  8. Expose only the devices and entities you want Assist to control. In Home Assistant, an entity that is not exposed is not available to the assistant, even if it works from the dashboard.

Start with a small set of lights, switches, scenes, and climate entities. This makes it easier to tell whether a failed command came from recognition, entity exposure, or the device itself.

Choose a Piper voice and quality level

Piper is Home Assistant’s local text-to-speech option documented as fast and optimized for Raspberry Pi 4. The available voices, pronunciation, and naturalness vary by language and model, so listen to samples in the language you intend to use instead of assuming that one voice is universally best.

Home Assistant reports that a medium-quality Piper model can generate 1.6 seconds of voice in one second on a Raspberry Pi. The Piper application documentation describes low and extra-low quality models as faster, while Pi 4 generally handles up to medium quality at usable speed. These are official guidance figures; your storage, temperature, concurrent automations, language, and model can change the result.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Freenove 4WD Smart Car Kit for Raspberry Pi 5 4 B 3 B+ Zero 2 W, Face Tracking, Line Tracking, Light Tracing, Obstacle Avoidance, App Control, Camera, Servo (Raspberry Pi NOT Included)
  • Multiple Functions: This car has four drive wheels, the rotatable head has a camera and an ultrasonic distance sensor (Assembly required) (Raspberry Pi and Battery NOT included)
  • Detailed Tutorial: Provides step-by-step assembly guide and complete Python code (The download link can be found on the product box) (No paper tutorial)
  • Compatible Models: Raspberry Pi 5 / 4B / 3B+ / 3B / 3A+ (2B / 1B+ / 1A+ / Zero 2 W / Zero W / Zero 1.3 is also compatible but needs extra parts) (NOT included in this kit)
  • Control Methods: Controlled wirelessly by your Android phone or tablet, iPhone (with Freenove App) and computer (run Windows, macOS or Raspberry Pi OS)
  • Battery NOT Included: Please refer to the downloaded tutorial to buy

If replies start late or audio breaks up, test a lower-quality model before changing the recognition engine. If the voice sounds artificial, try another voice in the same language; changing model quality and changing voice identity are separate decisions.

Connect the microphone and speaker endpoint

The exact connection depends on the endpoint hardware, and the inspected Home Assistant guidance does not endorse a particular peripheral model. The endpoint must present a working microphone input and an audio output that Home Assistant can use.

  1. Connect or pair the microphone and speaker with the device that will act as the voice satellite.
  2. Place the microphone where it can hear normal speech, away from fans and hard reflective surfaces.
  3. Place the speaker so its output does not point directly into the microphone.
  4. In the endpoint’s audio settings, select the intended input and output devices.
  5. Run a short Assist test from the endpoint and confirm that the recording is received and a Piper response is audible.

For a headless Pi endpoint, the Pi can stream the captured audio to Home Assistant and play the returned audio without hosting the full speech models. For an all-in-one build, the Pi must handle capture, recognition, synthesis, and playback on the same machine.

Add wake-word activation carefully

With Home Assistant’s documented wake-word architecture, a voice satellite streams audio to Home Assistant. Wake-word detection and command handling occur on the Home Assistant side, so a low-powered endpoint does not have to run the wake-word model itself.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

This design has two consequences: the host uses CPU and network capacity while satellites are streaming, and microphone placement affects detection quality. Home Assistant says that five voice satellites can stream simultaneously without overwhelming a Raspberry Pi 4. Treat that as vendor-maintained guidance rather than a guaranteed limit for every installation.

Best Value
USB Sound Card with 8Ω 5W Speaker for Raspberry Pi/Jetson Nano
  • This is a USB sound card/USB audio module with 8Ω 5W Speaker that supports recording and playback, a stereo codec, a built-in microphone, and a speaker. It is suitable for Raspberry Pi/Jetson Nano, driver-free, plug-and-play
  • "Listening / Speaking" Two-In-One-- onboard microphone, and speaker header, easy audio input / output. Plug and Play, easy to use--standard USB 2.0 port, driver-free, portable size
  • Multiple sampling rates support--supported sampling rates including 8K, 11.025K, 12K, 16K, 22.05K, 24K, 32K, 44.1K, and default 48K (Hz)
  • Support Multiple systems--Compatible with mac/Win7/8/8.1/10, Linux, Android, WinCE

The documented openWakeWord wake words are currently English-only. If you need another language or a different phrase, use another supported wake-word engine or a Wyoming wake-word service rather than assuming openWakeWord will recognize it.

Configure a wake word

  1. Confirm that the wake-word engine is installed and appears under Settings > Devices & services.
  2. Associate the engine with the Assist assistant and the intended voice satellite.
  3. Choose one of the wake words supplied by the engine.
  4. Test from the normal speaking position, with the speaker playing at the volume you will actually use.
  5. If false activations occur, move the microphone, reduce reflected sound, or choose a less commonly spoken wake word.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Keep processing local, or use hosted speech

When Assist uses local Speech-to-Phrase or Whisper and local Piper, Home Assistant states that spoken commands stay on the home hardware and the local speech engines send no data to external servers for processing. That statement applies to this local speech path; it does not make unrelated integrations or all network traffic local.

Home Assistant Cloud is the documented hosted alternative. It can reduce local installation and model-management work, but selecting a hosted speech service changes where speech processing happens. Decide based on your privacy requirement, available compute, language support, and tolerance for an internet dependency.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Test the pipeline in the order it operates

Testing one layer at a time prevents a recognition problem from being mistaken for a speaker problem.

  1. Audio input: verify that the microphone level changes when you speak and that the endpoint is using the intended input.
  2. Wake word: say the configured wake word from several positions. If wake detection fails, do not continue troubleshooting entity names yet.
  3. Transcription: issue a simple command and inspect the recognized text in Assist. A wrong transcript points to microphone placement, language selection, or the STT engine.
  4. Entity control: test an exposed light or switch with a short, supported phrase. If the text is correct but nothing changes, check the entity’s exposure and Home Assistant permissions.
  5. Speech output: ask for a response and confirm that Piper generated audio and the endpoint selected the intended speaker.
  6. Remote service path: if STT or TTS is on another computer, verify its LAN address, port, firewall rules, and running status.

Troubleshoot the common failure modes

Assist hears nothing

  • Confirm that the endpoint has microphone permission and that the correct input is selected.
  • Move the microphone away from the speaker and sources of mechanical noise.
  • Check that the satellite and Home Assistant are connected to the same LAN.
  • Test without a wake word to separate audio capture from wake-word detection.

The transcript is wrong

  • Set the assistant language and the STT model language to the language you are speaking.
  • Use shorter, unambiguous phrases while testing.
  • For Speech-to-Phrase, verify that the requested operation belongs to its supported command set; a closed-ended model cannot transcribe every arbitrary sentence.
  • For Whisper, allow for its Pi 4 processing delay before repeating a command and accidentally creating two requests.

The command is understood but the device does not respond

  • Expose the target entity to Assist.
  • Check that you named the correct area, device, and entity in Home Assistant.
  • Test the same entity from the Home Assistant dashboard to rule out an unavailable device or automation.

The response is silent or distorted

  • Confirm that Piper is running and that its selected voice supports the assistant language.
  • Check the endpoint’s output device and volume.
  • Try a lower Piper quality level if generation is delayed or audio underruns occur.
  • If Piper runs remotely, test the Wyoming connection and ensure the remote host is reachable on its configured port.

Wake words trigger unexpectedly

  • Reduce background noise and speaker-to-microphone coupling.
  • Try a different supported wake word.
  • Remember that wake-word accuracy depends on the room, microphone, playback volume, and language support; the documented openWakeWord set is English-only.

Improve responsiveness without sacrificing coverage

For a Pi 4 that controls ordinary household devices, start with Speech-to-Phrase and local Piper. Home Assistant’s documented under-one-second Speech-to-Phrase figure makes it the sensible first test for lights, switches, scenes, and climate commands.

If you need Whisper’s open-ended transcription, move only Whisper to a stronger LAN computer while leaving Home Assistant, Piper, and the endpoint where they are. This preserves a local network pipeline while avoiding the approximately eight-second Pi 4 processing figure reported by Home Assistant. A remote service does add another device to maintain and another network path to troubleshoot.

Keep the number of simultaneous streaming satellites within the capacity of the host. Home Assistant’s guidance says five can run without overwhelming a Raspberry Pi 4, but continuous audio, automations, database activity, and other add-ons all compete for resources. Monitor responsiveness as you add rooms rather than treating five as a universal scaling promise.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Quick Recap

Bestseller No. 1
NULLLAB 2-Pack NS4168 I2S Audio Amplifier & 3W Speaker Kit
NULLLAB 2-Pack NS4168 I2S Audio Amplifier & 3W Speaker Kit
Docs: github.com/nulllaborg/i2s_audio_amplifier_module
$17.99
Bestseller No. 2
USB to Audio USB Sound Card with 8Ω 5W Speaker, Driver-Free Plug and Play
USB to Audio USB Sound Card with 8Ω 5W Speaker, Driver-Free Plug and Play
Compatible with Multiple systems Compatible with Win7/8/8.1/10,mac, Linux, Android, WinCE; Onboard PWR indicators for operating status. Standard USB 2.0 port, portable size.
$18.99
Bestseller No. 3
NULLLAB NS4168 I2S Audio Amplifier & 3W Speaker Kit
NULLLAB NS4168 I2S Audio Amplifier & 3W Speaker Kit
Docs: github.com/nulllaborg/i2s_audio_amplifier_module
$9.99
Bestseller No. 5
USB Sound Card with 8Ω 5W Speaker for Raspberry Pi/Jetson Nano
USB Sound Card with 8Ω 5W Speaker for Raspberry Pi/Jetson Nano
Support Multiple systems--Compatible with mac/Win7/8/8.1/10, Linux, Android, WinCE
$18.99

What this setup can and cannot promise

  • It can provide: a local Home Assistant voice interface, local speech recognition and synthesis, controllable exposed entities, and a Pi-based endpoint or host.
  • It cannot provide automatically: a microphone, speaker, universal language support, instant Whisper responses on Pi 4, or recognition of every phrase with Speech-to-Phrase.
  • It depends on: audio hardware quality, correct language and entity configuration, LAN reliability for remote Wyoming services, and enough host capacity for the number of streaming satellites.

Recommended build decisions

Your priority Recommended arrangement Reason
Fast control of common home devices Pi 4 host, local Speech-to-Phrase, local Piper Home Assistant documents Speech-to-Phrase at under one second on Pi 4 or Home Assistant Green
Open-ended speech on a Pi-based system Pi endpoint or host with Whisper on a stronger LAN computer Wyoming supports remote services, avoiding the roughly eight-second Pi 4 Whisper figure
Fewest external dependencies Pi host with local Speech-to-Phrase and Piper Speech processing remains on home hardware
Minimum local model administration Home Assistant Cloud speech services Hosted processing reduces local setup, but changes the privacy and connectivity model
Several rooms Streaming satellites connected to one Home Assistant host Wake-word and command handling can remain centralized; host capacity and network quality still matter

Final setup checklist

  • Home Assistant OS is installed and reachable.
  • The Pi, endpoint, and any remote Wyoming computer share a functioning LAN.
  • A microphone captures clear speech and a speaker plays audio.
  • The chosen STT service and Piper are installed, started, and visible under Settings > Devices & services.
  • The assistant language, conversation agent, STT engine, STT language, Piper voice, and Piper language are selected under Settings > Voice assistants.
  • Every device you want to control is exposed to Assist.
  • Wake-word support is configured only if its language and audio environment fit your use.
  • You have tested input, transcription, entity control, and output separately.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.