I spent yesterday re-building my home-made Mycroft device from scratch (which uses a Raspberry Pi 4 and an Adafruit voice bonnet for the microphone and speakers, as well as a small LCD screen to display the GUI). I wrote up all of the details in this blog post in case anyone else might find it useful.
Congratulations, several months ago I tried doing exactly this, installing picroft and core on a rpi4 several times and failed, kind of. I do have a similar setup to you now, except if I try to run the Mycroft gui on the lcd, there’s a conflict between the user running the alsa audio listener and Mycroft gui.
Sometimes the audio input doesn’t work. Other times, the audio output doesn’t work. Either way it leads to a device that can listen but not speak, or vice versa.
In the end, like you, I decided picroft image was not ideal and installed 64 bit arm os for the pi4.
I read through your guide and just curious. What users (uid) are running the various services ?
Everything PipeWire and Mycroft related are running as the non-root user (I renamed from ubuntu
to rudism
but the uid is still 1000).
> ps -ef | grep -Ei 'mycroft|wire'
rudism 1260 1249 1 Dec13 ? 01:00:09 /usr/bin/pipewire
rudism 1261 1249 0 Dec13 ? 00:00:23 /usr/bin/wireplumber
rudism 1262 1249 0 Dec13 ? 00:50:45 /usr/bin/pipewire-pulse
rudism 1318 1 4 Dec13 tty1 04:34:30 python3 -m mycroft.messagebus.service
rudism 1321 1 31 Dec13 tty1 1-05:28:01 python3 -m mycroft.skills
rudism 1324 1 0 Dec13 tty1 00:03:24 python3 -m mycroft.audio
rudism 1327 1 3 Dec13 tty1 03:19:20 python3 -m mycroft.client.speech
rudism 1331 1 4 Dec13 tty1 04:29:35 python3 -m mycroft.client.enclosure
rudism 1332 1263 0 Dec13 tty1 00:02:25 /usr/bin/mycroft-gui-app --hideTextInput
rudism 1422 1327 0 Dec13 tty1 00:00:00 /home/rudism/.local/share/mycroft/precise/precise-engine/precise-engine /home/rudism/.local/share/mycroft/precise/hey-mycroft.pb 2048
rudism 1426 1422 32 Dec13 tty1 1-05:58:53 /home/rudism/.local/share/mycroft/precise/precise-engine/precise-engine /home/rudism/.local/share/mycroft/precise/hey-mycroft.pb 2048
rudism 58222 1332 0 Dec16 tty1 00:00:00 /usr/lib/aarch64-linux-gnu/qt5/libexec/QtWebEngineProcess --type=zygote --no-zygote-sandbox --application-name=mycroft.gui --webengine-schemes=qrc:sLV --lang=en
rudism 58223 1332 0 Dec16 tty1 00:00:00 /usr/lib/aarch64-linux-gnu/qt5/libexec/QtWebEngineProcess --type=zygote --application-name=mycroft.gui --webengine-schemes=qrc:sLV --lang=en
rudism 58225 58223 0 Dec16 tty1 00:00:00 /usr/lib/aarch64-linux-gnu/qt5/libexec/QtWebEngineProcess --type=zygote --application-name=mycroft.gui --webengine-schemes=qrc:sLV --lang=en
rudism 79727 79703 0 10:38 pts/0 00:00:00 grep --color=auto -Ei mycroft|wire
> id
uid=1000(rudism) gid=1000(rudism) groups=1000(rudism),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),116(netdev),120(lxd)
Fantastic walkthrough, thanks!
I think there is one small typo in the TTS speaker config
mycroft-config set tts.mimic3_tts_plug.speaker slt
Looking at voices available at Mimic 3 - Mycroft I don’t see an slt
voice, only slp
. Working great otherwise, I made it all the way through the setup when reading carefully!
Now I’m off the fiddle with skills and look into touchscreen support!