Setting Up a Google AIY Voice Kit (V1) in 2026
A practical guide โ every command, and why
The Google AIY Voice Kit V1 was released in 2017 as a build-it-yourself smart speaker for the Raspberry Pi. I bought mine back then but never got around to assembling it โ until now. The official GitHub repo was archived by Google on Feb 9, 2023 and is now read-only, so a few things have quietly broken since the original instructions were written. This is a record of what I ran into and how I solved it, in case it saves someone else the same detective work.
Before you start: known dead ends
A few things from the original setup flow no longer work, so don't waste time on them:
- The linked Google Assistant SDK guide now just shows a deprecation notice (Conversational Actions were sunset June 13, 2023).
- The in-app troubleshooting guide link (shown during setup) is dead.
- The repo itself is archived โ no further fixes are coming from Google, so the steps below are community/self-fixes.
The Voice Kit V1 site and Quick Start Guide are still up and mostly still apply for the physical build.
What you need
- A Raspberry Pi 3 โ or a Pi 4 (any RAM size), which works fine despite being released after the kit. Note: Pi 4 uses micro-HDMI, not full-size HDMI โ grab an adapter if you need a display.
- A 16GB+ SD card
- The kit itself (Voice HAT, mic array, speaker, cardboard enclosure, LED)
- Correct power supply for whichever Pi you use โ the Pi 3's micro-USB supply is not compatible with the Pi 4, which needs USB-C at 5V/3A. Undervoltage causes flaky WiFi and random instability, so don't skip this.
1. Flash the system image
Go to the releases page โ despite the archive notice, the images are still downloadable. Grab the latest one, AIY Kits Release 2021-04-02, and flash it to your SD card with Etcher.
2. Assemble the hardware
The physical build itself was trouble-free โ instructions are clear, kit is well designed, cardboard folds fit the Pi 4's port layout without modification.
One thing to watch: insert the Pi into the cardboard enclosure before inserting the SD card, not after โ sliding the assembled hardware in with the card already inserted is awkward and risks damaging the card slot.
3. First boot
Boot went smoothly โ this is where the real troubleshooting started.
Troubleshooting: no WiFi
If wlan0 doesn't show up or won't connect, work through this in order.
Connect via Ethernet first so you have a reliable way in regardless of WiFi status:
ssh pi@raspberrypi.local
# default login: pi / raspberry
Check the WiFi interface actually exists:
ip link show
If there's no wlan0 at all, it's a hardware/driver issue โ check cat /proc/cpuinfo | grep Model to confirm which Pi board you actually have. (In this case, the board assumed to be a Pi 3 was actually an original 2014 Pi 1 Model B+, which has no WiFi hardware at all. Worth checking early.)
If wlan0 exists but isn't connecting:
rfkill list # check for a soft block
sudo rfkill unblock wifi # if blocked
sudo raspi-config # Localisation Options โ WLAN Country โ set yours
sudo iwlist wlan0 scan | grep ESSID # confirm your network is visible
sudo cat /etc/wpa_supplicant/wpa_supplicant.conf # check for a network={} block
If the config is missing your network, add it cleanly (avoids typos, generates a proper hash):
wpa_passphrase "YOUR_SSID" "YOUR_PASSWORD"
Copy the output into the config file:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DE
network={
ssid="YOUR_SSID"
psk=<the long hash from wpa_passphrase>
}
Save (Ctrl+O, Enter, Ctrl+X), then apply:
sudo wpa_cli -i wlan0 reconfigure
# or just: sudo reboot
ip a show wlan0 # look for an inet 192.168.x.x line
4. Google Cloud setup
The Voice Kit's cloud speech recognition needs a Google Cloud project with billing enabled. This is a change from 2017 โ it's now required even to stay within the free tier. For light hobby use, the free 60 minutes/month of Speech-to-Text (plus $300 in new-account credit) comfortably covers testing.
Don't try to sign into Google through the Pi's own desktop browser โ it's an old, embedded Chromium/Epiphany build that Google's modern sign-in flow actively rejects (you may see a misleading "cookies are disabled" message). Do all of this from your laptop instead, and only use the Pi over SSH.
- Go to Google Cloud Console on your laptop.
- Create a project (e.g.
aiy-voice-kit). - Enable the Speech-to-Text API.
- Enable billing (set a small budget alert as a safety net: Billing โ Budgets & Alerts).
- Create a Service Account โ Keys โ Add Key โ JSON. This downloads a credentials file.
- Copy it to the Pi:
scp ~/Downloads/your-credentials-file.json pi@raspberrypi.local:/home/pi/cloud_speech.json
5. Fix the outdated speech library call
Running the built-in checker:
python3 /home/pi/AIY-projects-python/checkpoints/check_cloud.py
throws:
AttributeError: module 'google.cloud.speech' has no attribute 'types'
This is a known, well-documented break โ the google-cloud-speech Python library moved on from the old .types structure, but the 2021 AIY code was never updated to match. Patch it:
cp /home/pi/AIY-projects-python/src/aiy/cloudspeech.py ~/cloudspeech.py.bak
sudo sed -i \
-e 's/from google.cloud import speech$/from google.cloud import speech_v1 as speech/' \
-e 's/speech\.types\.StreamingRecognizeResponse\.END_OF_SINGLE_UTTERANCE/speech.StreamingRecognizeResponse.SpeechEventType.END_OF_SINGLE_UTTERANCE/' \
-e 's/speech\.types\.RecognitionConfig\.LINEAR16/speech.RecognitionConfig.AudioEncoding.LINEAR16/' \
-e 's/speech\.types\./speech./g' \
/home/pi/AIY-projects-python/src/aiy/cloudspeech.py
Re-run the checker โ it should now report:
Everything is set up to use the Google Cloud.
6. Test it
cd ~/AIY-projects-python/src/examples/voice
./cloudspeech_demo.py
This listens through the mic, sends audio to Google's Speech-to-Text API, and prints back what it heard โ confirming the full pipeline (mic โ cloud โ transcription โ action mapping) works end to end.
Lessons learned
- Double-check your Pi model before debugging WiFi โ
cat /proc/cpuinfo | grep Modeltakes ten seconds and would've saved a day of head-scratching. - Undervoltage causes weird, unrelated-looking symptoms โ flaky WiFi, USB dropouts, slowness โ always rule out the power supply early.
- Don't fight an outdated browser โ if a Pi's bundled browser can't handle modern sign-in flows, do the login on your laptop and bridge the results over (via terminal auth flows, file transfer, or SSH) rather than trying to patch the browser itself.
- Archived doesn't mean broken โ most of the AIY stack still works fine in 2026, it just needs a few small patches where the surrounding Google Cloud ecosystem moved on without it.