Skip to content
This repository has been archived by the owner on Feb 9, 2023. It is now read-only.

Multiple triggers #80

Closed
sheridat opened this issue Jun 7, 2017 · 7 comments
Closed

Multiple triggers #80

sheridat opened this issue Jun 7, 2017 · 7 comments

Comments

@sheridat
Copy link

sheridat commented Jun 7, 2017

Hi, One of the principal use cases of the AIY kit is to play music - including music stashed in google play servers. Some people have even soldered on another DAC/AMP so they can listen in stereo.

However if you use hotword triggering - once your playback is above a certain volume level you end up being unable to reliably trigger the assistant to ask for the volume to be lowered or move to the next track etc (various people including me have implemented actions to control our favourite music players). The microphone/software can't hear the ok google trigger phrase.

I noticed in http://eduncan911.com/stem/embedded/aiy-google-assistant-upgrades-may-2017.html made a comment that currently the code only supports one trigger.

Any ideas how the catch 22 can be resolved - if it can be resolved? I am guessing that being able to trigger by another means - such as GPIO that lowers the volume/mutes the volume is an obvious beginning.

Oh I am aware of - don't play your music so loud :-) Thank You in advance

@eduncan911
Copy link

eduncan911 commented Jun 8, 2017

I agree there should be multiple triggers available. I think the Google Home device does trigger on both the OK Google hotword as well as the button on the back, from what I read in places online.

But note: if the Voice Kit/Google Home device can't hear your "Ok Google" - which has gone through very rigorous pattern matching across many dialects and age groups, it most likely won't understand what you say next after triggering it with such loud volumes of music.

Just saying. 👍

One thing to play with is the Gain controls of the mic input. As noted in #47 , the gain control with the AIY Projects SD Card image is set too high and distorts (clips) the input if too close/too loud.

We (my family) have seen this a lot.

I can be in the next room and speak with just a slight kick in my voice, and the Voice Kit will hear my "Ok Google" and trigger and pick up what I am asking it. Again, from another room! Very very sensitive!

On the other hand, with my 5 year daughter standing right next to it and saying, "Ok Googles" in the normal kids-slightly-higher-volume tone - it never triggers. I ask her to speak much quieter (knowing the gain is really high), and then it triggers.

Same goes with me. If I am speaking slightly higher, say over a boiling teapot, the Voice Kit never triggers with the OK Google hotword. If I tone it down, to a "it should never be able to hear me at this volume, in the kitchen, on the other side of a wall, with a boiling teapot" - it triggers and hears me!!!!!

I've been tweaking the gain to +10 as noted in #47 and it works, with her speaking pretty loud next to it and I can speak up and it hears me. But I now kind of miss the sensitivity I had before. I got back and forth. Right now, it is set to 30 because I like to be able to ask it a question from the next room (about 40 feet away). Our house is very quiet.

@sheridat
Copy link
Author

sheridat commented Jun 8, 2017

Thanks for such a detailed reply. I will have a good play with the gain controls and read #47.

If we were able to trigger the assistant by GPIO as well as by hotword we can solve most of the issues.

Some of us are already using scripts to trigger the assistant by manipulating GPIO pin 23. A good example is using a dash button which when pressed fires up the assistant. See post "https://www.raspberrypi.org/forums/viewtopic.php?f=114&t=184283".

In my case when I was using the default GPIO trigger and playing music, I used to get the assistant to fire up by running a python script that muted/unmuted my music player using a toggle. and then set GPIO 23 as per the post above. I would ask the assistant whatever and then when ready ask it to play music again. Rather than a dash button - I triggered my script by IR remote but I've also used ssh to run it and well the possibilities open up to solve things like this if we can use an alternative trigger when we have set the default to ok-google.

As an aside - I've just been to my local electronic shop and bought everything to make an "ir blaster" so by teatime I should be able to say "ok google TV volume up" and so on. I love this thing - it has really captured my imagination.

@ensonic
Copy link
Contributor

ensonic commented Aug 7, 2017

@sckam please use a new ticket for new issues. In your cases GpioWrite(17 & 27, True) does not do what you think it would. GpioWrite can only affect a single pin. You are invoking a bitwise operator: https://wiki.python.org/moin/BitwiseOperators. Conicidentially 17 & 27 is still 17 (all the bits set in 17 are also set in 27). The easiest fix is to duplicated the add_keyword lines for each pin.

@eduncan911
Copy link

@sckam please create a new Issue. this issue is for something totally different.

i have suggestions, but they don't belong here.

@drigz
Copy link
Member

drigz commented Oct 18, 2017

There's an example for multiple triggers in the new assistant_library_with_button_demo.py.

@drigz drigz closed this as completed Oct 18, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants
@eduncan911 @drigz @ensonic @sheridat and others