Help with picking the right components appreciated

Hi,

I’m a complete newby to Mycroft and digital assistants in general. One reason for not having paid attention to them before, is my reluctance to get into bed with companies like Amazon, Google, Apple, etc. Recently I ran into Jasper, a project similar to Mycroft, and also got my first two Raspberry Pi’s. Because the Jasper project hasn’t seen any activity for at least 4 years, I searched a bit and stumbled upon Mycroft.

I am not a Linux whizz-kid and don’t know anything about electronics. However, I have been a self employed programmer for more than 35 years and know my way around Linux and its command line. Enough to do my job at least. I also managed to install and get Mycroft up and running from the enclosure-picroft on Github. Not that difficult, as the image creation recipe is very clear and the update.sh script very mature and stable apparently. My sincere compliments for that.

Because it is still an experiment, I connected an extremely old Logitech desktop microphone and a set of almost equally and incredibly cheap unpowered speakers to the Pi. Results are bad to say the least. I did manage to have Mycroft respond to two or three commands, but no more than that. I have to glue the speakers to my ears to hear anything useful and have the distinct feeling the microphone isn’t very helpful in making Mycroft listen to me. So I spend several hours reading forum posts and browsing the internet, trying to decide which components to get. I still have now idea,

The way I see it there are two directions:

  • Get an all in one, wired USB speakerphone like the Jabra 410/510 or a wired USB microphone + USB speakers.
  • Get a microphone array like ReSpeaker Core v2 or Matrix voice and connect a speaker directly to the Pi somehow.

Both have there advantages and disadvantages. The first options seems simple and straight forward, but I have read quite a few stories of people struggling to get it up and running and keeping it that way. The second option takes me into the world of more advanced Pi usage, which I’m not quite sure I’m ready for yet. It feels like the proper Pi thing to do, but I’m hesitant because I haven’t the foggiest idea what I need exactly, let alone how to connect it and get it all to work.

I really want something that’s fail safe and bullet proof. I’m not a wealthy guy (understatement) but I prefer to spend a few euro’s more for good quality components that work without issues out of the box, than spending a lot of time and getting frustrated, just because I made poor choices for the components. So some help with picking the right components is very much appreciated.

1 Like

Can’t speak for the Jabra thingy (yet “skype certified” makes me cringe), but my Respeakerv2 (not the “core” one) has proven pretty reliable. Even an enclosed version is available. The slightly higher price you pay is eased by a next to none setup time. Works essentially OOTB. And i could stand by with finetuning pulse.

(could even send a script, because i’m tweaking auto_run.sh right now to flesh out the setup procedure of respv2)

Thanx for the swift reply.

yet “skype certified” makes me cringe

I understand what you mean :grin: but I assume you refer to Microsoft and not so much to Jabra.

Your satisfaction with the ReSpeaker v2 is encouraging. So I guess I will stick to that. Fortunately it’s available in the Netherlands as well.

my Respeakerv2 (not the “core” one)

I’m not quite sure what the differences are. From what I can see, the “core” one is an “intelligent” version of the Mic Array, with its on board CPU, memory and OS. I can’t grasp the practical differences though and whether it has any benefits to choose the one over the other.

Even an enclosed version 1 is available.

Looks good as well. It might be less flexible if I ever summon the courage to create a fancy housing, but I guess I can always take it out of the enclosure by then :smile:

So how about speakers? Any suggestions for that as well? Should I opt for USB speakers or something connected to the dedicated Pi audio jack? I read quite a bit of problems with Bluetooth components. Should I stay away from Bluetooth speakers?

(could even send a script, because i’m tweaking auto_run.sh right now to flesh out the setup procedure of respv2)

If I need it, a script would be much appreciated, although at this moment, I don’t know what to do with it yet :joy: In a similar fashion I really don’t know what you mean by “respv2”. It will take some time before I get the hang of it all.

Respv2 is just the lazy version of ReSpeakerv2.

See, i can only refer to Respv2. I don’t really know much about the core version and its intelligence.

Yet, there are several things that let me shy away from core. Most of which is the limited environment (software/RAM). That they use a tailored version OS make me believe its a pretty involved process to brew it yourself to use the cards features if there’s any problem with mycroft. The limited RAM pretty much denies GUI. And the price tag of 99 Bucks… Thats a USB RespV2(Barebone)+Pi4B (roughly).

But it all comes down to your use case. If your OK with these limitations, go for it. Personally i wouldn’t take the chance. The risk to price doesn’t add up.

If you want the extra careful and “guaranteed to be supported” route wait the revisions revision of SJ201 (just to add this option to the table)

Speaker: Every contemporary 3-way-speaker > 20W (RMS) should do, if you’re used to above average volume or want a wider range you have to pre-amp them.

Thanx again.

I understand what you mean and tend to agree. The enclosed ReSpeaker USB Mic Array is on its way :slight_smile:

As for the speaker, I have a an old powered PC speaker set catching dust somewhere. I’ll use that one to get the proof of concept running stable first and then look for a more sophisticated solution.

Lastly about that script you mentioned. You also mentioned that the ReSpeak v2 essentially works OOTB, which I interpreted roughly as “Out Of The Box” :grin: So how does that script fit in? Do I need that script?

Out of the Box is a very relative term theses days, even more true in a highly customized/customizeable environment.

auto_run.sh - the startup/update script - sets you up in a general way, adding some pip packages, flashes the firmware and alters the mycroft.conf. Yet 48kfirmware (and other multi purpose flavors) were added after the code was written. (the one used (16k) will still work)

The script i’m talking about is derived from finding a way for Mycroft to play nice in regard of the intersection Pulse Server-ALSA-Mycroft and its services and pulses beneficial features (pretty much sidelining ALSA :grin:) by adding several lines of config here and there, which is not implemented yet in the official git.

Once again your swift response is highly appreciated. However, you completely lost me now with all the technical details :crazy_face:

Take this as entry points to dig deeper

I’ll give it a try and get back to you if I get stuck.

As far as getting Mycroft up and running, I didn’t get stuck yet. This is what I did:

This gave me a working installation. Sort of, because it’s definitely not stable yet. After a few commands, sometimes multiple but sometimes just one, the audio output stops. Using the cli, I can see that Mycroft “understands” the wake up phrase and commands and responds with an appropriate reply, but no longer with audio, unfortunately. Only after reboot doe I have the audio back for a few commands.

If hope there is someone out there who can share information about how to troubleshoot and/or solve this issue. Otherwise I’ll try to dig into this a later and post my findings in a new topic.

Most likely the “suspend on idle” pulseaudio module is loaded.

Thanx Peter. Even if it hasn’t been idle, the problem occurs. I’ll definitely check it out though.

Another, seemingly related thing concerns the JBL GO2 : it turns itself of after some idle time. The two problems appear not to be related though, because the first problem also occurs when the JBL is powered on when rebooting the system.

That’s the script portion you want. put the file anywhere on Picrofts HOME, chmod a+x fix.sh and fire it up ./fix.sh

Maybe check /etc/asound.conf that the format is not all over the place

1 Like

oh and

sudo sed -i -e "s/aplay %1/paplay %1/" /etc/mycroft/mycroft.conf

and i recommend changing tts in the mycroft.conf (either mentioned in /etc/mycroft/mycroft.conf or ~/.mycroft/mycroft.conf)

“tts”: {
“module”: “google”,
“google”: {
“lang”: “de”
},
“pulse_duck”: true
},

the tts provider is arbitrary

Nice script! Looks familair😜

@gez-mycroft Maybe it is worth pinning it somewhere. Here or at the docs.

1 Like

Thanx for the script. It has a few issues. I’ll try to fix them and send you the new version.

I’ll add them to the auto_run.sh

if [! -f /etc/asound.conf]
into
if [ ! -f /etc/asound.conf ]

sorry for that

Missing a space on line 16:
echo"load-module module-role-ducking
into
echo "load-module module-role-ducking

There also a typo on line 20
#config /etc/pulse.daemon.conf
into
#config /etc/pulse/daemon.conf

Finally there is something weird on my side. I get a “Permission denied” on the last line. The /etc/asound.conf is created nicely but the printf gives an error.

printf '# Use PulseAudio by default\npcm.!default {\n   type pulse\n   fallback "sysdefault"\n   hint {\n      show on\n      description "Default ALSA Output (currently PulseAudio Sound Server)"\n   }\n}\n\nctl.!default {\n   type pulse\n   fallback "sysdefault"\n}\n' | sudo tee /etc/asound.conf

That’s not your system, that’s because you are the first tester of this script part :smiley: