This tutorial is going to show how to set up Google Assistant using a Raspberry Pi 4 and Bluetooth Speaker.
I] Parts Required:
- 1x Raspberry Pi ( I have used Raspberry Pi 4 Model B)
- 1x Bluetooth Speaker
- 1x USB Microphone ( You can try using a Bluetooth headset with a mic)
- 1x 8GB or above MicroSD card
- 1x 5V USB power adapter
- 1x USB type C power cable (Raspberry Pi 4 uses type C, lower versions use micro USB)
- 1x Ethernet Cable
The above parts are sufficient for using the Raspberry Pi with a laptop.
If you have a HDMI Monitor, USB keyboard and mouse, you can use that as well. Basic setup instructions can be found on the official website -(https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up)
II] Setup the SD card:
Start with a fresh version of the Raspberry Pi Operating System. The latest version at the time of writing this article is the Raspbian Buster OS.
- Install the latest version here – Download
- Install Balena Etcher to flash the OS onto the SD card (BalenaEtcher )
- Eject the Sd card once you flash the downloaded OS image.
III] Set up your Pi
Insert the flashed SD card into the Pi. Use the 5V USB power cable to power up the Pi and connect it to your laptop using the ethernet cable.
Install Putty ( free SSH client) – Putty Open Putty and type the IP address of your Pi. Alternatively, typing raspberrypi.local should also work.
The default username is pi and the password is raspberry. In the first SSH session, type sudo raspi-config
to change your Pi’s password.
To use the Graphical interface, install the remote desktop client. sudo apt-get install xrdp
Open Remote Desktop Connection in your Windows. Type your Pi’s IP address and login. You should see the graphical interface.
IV] Disable HDMI and Analog Audio
Start a terminal using Ctrl+Alt+T and edit boot/config.txt
sudo nano /boot/config.txt
Disable both HDMI and analog audio by placing ‘#’ in front of:
#dtparam=audio=on
Reboot the Pi using sudo reboot
V] Connect Bluetooth Speaker
- Click on the Bluetooth icon on the top right of the screen to pair the Bluetooth speaker.
- If the above method does not work, open a terminal and type
bluetoothctl
- Type
connect xx:xx:xx:xx:xx:xx
(xx:xx:xx:xx:xx:xx is the MAC address of your Bluetooth speaker) - Click on the Bluetooth icon again and you will see the Bluetooth speaker has a green tick in front of its name.
VI] USB Microphone
- Connect the USB microphone to one of the Pi’s USB ports.
arecord -l
should list the microphone.- In case a Bluetooth headset with mic is used as the input for the Google Assistant, follow the above steps used to connect the Bluetooth speaker.
VII] Change the .asoundrc configuration file
Once the Bluetooth speaker and the USB Microphone/Bluetooth Headset is connected, a .asoundrc will be generated which will look like the following:
pcm.!default {
type plug
slave.pcm {
type bluealsa device "xx:xx:xx:xx:xx"
profile "a2dp"
}
}
ctl.!default {
type bluealsa
}
Type sudo nano \.asoundrc
to edit the above file. Change the file to the following:
pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug slave { pcm "hw:1,0" }
}
pcm.speaker {
type plug
slave.pcm {
type bluealsa device "xx:xx:xx:xx:xx"
profile "a2dp"
}
}
hw:1,0 stands for the card and device number which can be found from arecord -l
.
In case a Bluetooth headset is being used as the microphone, paste the same content from pcm.speaker into pcm.mic and change the MAC address to that of the headset and change the profile to “sco”.
Save a copy of the .asoundrc file to the following: sudo cp ~/.asoundrc /etc/asound.conf
VIII] Installing the Google Assistant SDK:
Install the Google Assistant software by following all the instructions in the link below: Link
Once the above action is completed, type the following in a terminal:
source env/bin/activate
googlesamples-assistant-pushtotalk –project-id my-dev-project –device-model-id my-model
Replace my-dev-project with the project id from the project settings and my-model with the model id from the credentials screen from the Google Actions Console.
IX] Completion:
Once all the above steps have been followed, your Google Assistant should be up and running. You can try asking a variety of questions and listen to the answers.