Google Assistant SDK. Add assistant to any device

4 Likes

installing… :smiley:

Python Hey…

Can be triggered by button, so definitely building this into my door-bell project :slight_smile:

Could one maybe request that Google Assistant (AI voice agent) speech recognition be nativly integrated into Home Assistant with this SDK?

If someone have the interest and Python coding skills then perhaps this SDK could be made into a Home Assistant plugin for native voice control support?

As already linked, Google Assistant SDK developer preview is available for download, initially optimized for the Raspberry Pi, but looks to be portable:

PS: You have to add a speaker and a microphone, and guess to get wife acceptance users would really need to buy a good microphone array device, like ex:

matrix.one - matrix Resources and Information. or ReSpeaker Mic Array - Far-field w/ 7 PDM Microphones - Seeed Studio

you know how to write this code change?

Just saw that in the doc’s haven’t played any further yet

Developer preview 0.2.0 of the Google Assistant SDK released on May 17th 2017

FYI, Google have now released developer preview 0.2.0 which now includes a Google Assistant library for Python and hot-word voice activation

https://developers.google.com/assistant/sdk/release-notes

New features in the developer preview 0.2.0 version are:

  • Initial release of the library for Python.
  • Ok Google and Hey Google hotword support for voice activation
  • Ability to set alarms and timers.

Previous developer preview 0.1.0 release version already had:

  • An RPC API is available to communicate with the Assistant.
  • Python sample code is available.
1 Like

Has anyone made progress on making this into a hass.io add-on? From the looks of it, the SDK would allow voice activation of skills provided by the device itself, with no cloud component needed, and given the scripted setup, building a docker container should be fairly straight forward?

With the SDK you can basically create your own Google Home-like device. In theory it could run on the same Raspberry Pi that hass.io runs on. However, your custom device would have the same dependency on the Google cloud that every other Google Home device has. Without the Google cloud it won’t function. It won’t even talk to local devices on the same network. All of the Google Home AI and speech processing lives in the cloud and is proprietary Google code.

Thanks, @jcollie. I was mostly wondering if anyone had packaged it up into an add-on, maybe with automatic bindings to affect the devices exposed. That would make it slightly easier to manage.

While haven’t made anything public or packaged anything, I more or less have made what you are looking for.

Mind you, I’m very new to Home Assistant and still struggling getting all my devices exposed to Google (hence my search on the forum, leading me to this topic).

I am running a Pi with Google’s Embedded Assistant (C++), which I combined with Snowboy (C++) for custom wakeword detection. (Don’t like saying “Hey Google” in my own house all the time)
The Pi has a hat with a microphone array and of course a speaker.
Also it runs Home Assistant with the HA Cloud.

The embedded assistant enables me to talk to Google Assistant with my Pi. So I can ask stuff like the weather forecast, traffic situation, etc. With the HA Cloud, I can now expose my devices (smart switches, sensors, etc) to Google. If you add the Hass.io “device” to the Google Assistant on your Android phone, and make sure that the Embedded Assistant is registered on the same account, then the devices will be exposed to your embedded assistant as well.

So now I can say “, turn on the bathroom light” and it will work. Or, I can use my phone ans go “Ok Google, turn on the bathroom light”. (Can’t use custom wakeword on phone of course)

Does the add-on support HTTP / REST API calls of some sort? The idea would be to be able to use the Google Assistant on the Raspberry Pi from Automations/Scripts without using the mic as an input. (One good use case is triggering Spotify cast on devices not recongized by the API; or, in general, access commands available to Google Assistant from scripts/automations.