Google AIY v1 with Mycroft 20.08-no mic

Well will give it a try after some hours of sleep :wink:

the “sudo rm /lib/udev/rules.d/91-pulseaudio-rpi.rules” did not work but when I rerun the setup wizard “mycroft-setup-wizard” in ssh and chose option 4 “4) Matrix Voice HAT.” and after several restarts it works with the latest image. Geat moment to see the mic levels change :wink:

Can someone please post the content of that “91-pulseaudio-rpi.rules” file?

Perhaps I can see what is wrong. The AIY v1 works perfectly with the latest linux kernel and pulseaudio on OpenVoiceOS (former MycroftOS).

All I have to do is add the “dtoverlay=googlevoicehat-soundcard” to config.txt and everything works… Perhaps I can see what they do differently in the lastest RaspberryOS.

@j1nx please take a look at this post I found:

The new RPI images break AIY voicehat with new PulseAudio settings. I might try downgrading like this person did. I am doing a fresh install using the recipe build method. If the mic works out of the box, then you’ll need to wait a few days before I break it with a sudo upgrade or something. I need to order another couple of microSD cards to copy my working install over to.

@j1nx where is the config file you are editing? Can you share any other modifications you made to get the AIY soundcard to work?

@j1nx This is what is in the 91-pulseaudio-rpi.rules file:

SUBSYSTEM!=“sound*”, GOTO=“end”
ACTION!=“change”, GOTO=“end”
KERNEL!=“card*”, GOTO=“end”
ENV{SOUND_FORM_FACTOR}!=“internal”, GOTO=“end”

ATTRS{id}==“b1”, ENV{PULSE_PROFILE_SET}=“rpi-hdmi.conf”, GOTO=“end”
ATTRS{id}==“b2”, ENV{PULSE_PROFILE_SET}=“rpi-hdmi.conf”, GOTO=“end”
ENV{PULSE_PROFILE_SET}=“rpi-analog.conf”

LABEL=“end”

And this is what is recommended to change:

SUBSYSTEM!=“sound*”, GOTO=“end”
ACTION!=“change”, GOTO=“end”
KERNEL!=“card*”, GOTO=“end”
ENV{SOUND_FORM_FACTOR}!=“internal”, GOTO=“end”

DRIVERS==“bcm2835_audio”, ATTR{id}==“b1”, ENV{PULSE_PROFILE_SET}=“rpi-hdmi.conf”, GOTO=“end”
DRIVERS==“bcm2835_audio”, ATTR{id}==“b2”, ENV{PULSE_PROFILE_SET}=“rpi-hdmi.conf”, GOTO=“end”
DRIVERS==“bcm2835_audio”, ATTR{id}==“Headphones”, ENV{PULSE_PROFILE_SET}=“rpi-analog.conf”, GOTO="end

LABEL=“end”

Right, it looks there is more going on then I thought.

With the new vc4 drivers they also use the new sound from linux instead of the firmware blobs. Hence the reason they configured the “rpi-hdmi.conf” profile.

As the AIY v1 looks like a copy of the old sound driver (sound_soc_simple) it looks like they push to much into that pulseaudio profile configuration.

Isn’t that updated 91-pulseaudio-rpi.rules you posted not working?

Changing the rules file has it working, but I can’t get my wake word to recognize.

EDIT: At first the wake word would not work, then I realized I needed to set it to Precise model.

Make sounds and check the mic monitor within the mycroft-cli-client

If it moves when making sounds, your mic is working.

Yes it’s working, but I am having a lot of trouble with the wake word. It defaults to sphinx on boot. When I type to switch to precise Mycroft hears my first command, then no other wake word commands afterward.

I am just trying to use the default ‘Hey Jarvis’.

Is this what should be after the command mycroft-config edit user?

{
“max_allowed_core_version”: 20.8,
“listener”: {
“wake_word”: “hey jarvis”
},
“hotwords”: {
“hey jarvis”: {
“module”: “precise”,
“sensitivity”: 0.5,
“trigger_level”: 3
}
}
}

Hi @nerlins

I’m not sure that there is an existing Precise Hey Jarvis wakeword trained, you will have to use PocketSphinx for that.

@goldyfruit Obviously there is a model, because it is in the account.mycroft.ai choices; along with hey Ezra, Christopher, and Hey Mycroft.

EDIT: unless those models are not Precise models. I’m just getting a handle on all of this.

I think I have figured it out. I was pronouncing the phoneme of Jarvis in my office, with Jarvis in my little shop room across the hall. He heard me. I’m slowly dialing the mic volume down in alsamixer, and I can walk closer and closer to him with wake word commands. Essentially, I had to be 20 ft away with the default settings for him to hear me clearly. This is still using the above .conf text from my earlier post.

Honestly, I think I finally have this little jerk working, after all this troubleshooting.

Here’s a recap of my woes for anyone stumbling upon this page, looking for help:

  1. My girlfried bought me a Pi v3B last Christmas, and I had been trying to figure out what to do with it, since I like the Pi v4-8GB.
  2. I found Mycroft, and the Google AIY v1 was listed as supported.
  3. I bought an AIY v1 voice kit for $30 off eBay and printed an enclosure on my Sovol SV01 3D printer.
  4. The new Buster Raspbi images break the AIY v1 mic, unless the 91-pulseaudio-rpi.rules file is edited, using what I have written in one of the above posts.
  5. The file is found in /lib/dev/rules.d. Once edited, reboot and test out mic.
  6. Switch listener from Sphinx to Precise; since it loads Sphinx from default.
  7. I am using the default Hey Jarvis wake-word, which was selected when doing the online pairing.
  8. Edit mycroft-config with what I have in one of the above posts.
  9. Change mic volume from 100% to 30-35% in alsamixer.
  10. Install google-aiy-voicekit skill.
  11. Test out Mycroft.
2 Likes

From what I see here[1], there is only Hey Mycroft . From the source code[2], I can see an URL which I’m not able to browse so maybe there are the three others there.

[1]GitHub - MycroftAI/precise-data at production_models
[2]mycroft-core/mycroft/client/speech/hotword_factory.py at dev · MycroftAI/mycroft-core · GitHub

only hey mycroft is precise, maybe also christopher, the others are pocketsphinx

See https://github.com/MycroftAI/precise-data/tree/models

I don’t follow your project but I discovered that problem, I link the discussions so you can examine that file 91


and
https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=294600&p=1783790#p1783790

@JarbasAl @goldyfruit Here is a screenshot of my phone on the account.mycroft.ai page. I have selected Hey Jarvis, and my .conf file has Precise configuration. It is working. I’m not sure what you guys are seeing, but that is what I have.

Regardless of the wake-word used, my wake-word problem was my mic input being too loud. Once lowered, the wake-word activated Mycroft from only a few feet away.

If what you are saying is correct, then what do I need to add into my .conf file for it to be Hey Jarvis, and use the Sphinx listener?

hey jarvis from backend should use pocketsphinx automatically

was just rulling out a problem with precise

your volume issue makes some sense, but its somewhat unexpected…

I do not know your program but if the voice recognition relies on the pyaudio library, it has been ascertained that the updated version of pulseaudio conflicts with pyaudio