Following this guide: https://pimylifeup.com/raspberry-pi-google-assistant/
Pi info:
Microphone
pi@raspberrypi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 2: CODEC [USB audio CODEC], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
Speaker:
pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: vc4hdmi [vc4-hdmi], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: CODEC [USB audio CODEC], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
So that gives this:
pi@raspberrypi:~ $ cat /home/pi/.asoundrc
pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug
slave {
pcm "hw:2,0"
rate 48000
}
}
pcm.speaker {
type plug
slave {
pcm "hw:0,0"
}
}
Tested my mic and speakers work. they do. fine tuned the gain some on the mic
Setting up the auth for the project
In classic google python sample style, none of the rest of the guide works since i just get a bunch of errors about deprecated stuff:
export projectid="pi--home-71b5e"
export deviceid="pi--home-71b5e-pi-google-home-ctd0tk"
googlesamples-assistant-pushtotalk --project-id $projectid --device-model-id $deviceid
python -m pushtotalk --device-id $deviceid --device-model-id $deviceid -v
Yep, following the guide on the google developer website: https://developers.google.com/assistant/sdk/guides/service/python/embed/run-sample
(env) pi@raspberrypi:~/googleassistant $ googlesamples-assistant-pushtotalk --project-id $projectid --device-model-id $deviceid
Traceback (most recent call last):
File "/home/pi/googleassistant/env/bin/googlesamples-assistant-pushtotalk", line 5, in <module>
from googlesamples.assistant.grpc.pushtotalk import main
File "/home/pi/googleassistant/env/lib/python3.9/site-packages/googlesamples/assistant/grpc/pushtotalk.py", line 27, in <module>
from google.assistant.embedded.v1alpha1 import embedded_assistant_pb2
File "/home/pi/googleassistant/env/lib/python3.9/site-packages/google/assistant/embedded/v1alpha1/embedded_assistant_pb2.py", line 36, in <module>
_descriptor.EnumValueDescriptor(
File "/home/pi/googleassistant/env/lib/python3.9/site-packages/google/protobuf/descriptor.py", line 755, in __new__
_message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
1. Downgrade the protobuf package to 3.20.x or lower.
2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
More information: <https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates>