OpenVoiceOS - A bare minimal (production type of) OS based on Buildroot

That is because I push Alsa userland to use PulseAudio.

So with the alsamixer command you have a Master control, controlling all sinks. That master is controlled by mycroft.

That way you can use F6 to select the different outputs and level them to the same volume. Mycroft uses the Master to increase and decrease all sinks at once.

Edit: Crap, i also included the cli command ncpamixer to control pusleaudio volumes but haven’t even checked and tested it🤦‍♂️

So, what respeakerv2 concerns, there is not much difference to the official releases. The utilities from the seeed-voicecard driver (+service/overlays/udev/etc.) doesn’t affect the card at all.

What remedied my problem with cut off (resp. misroutet) streams was the usage of

load-module module-combine-sink sink_name=MycroftOS_ALL
set-default-sink MycroftOS_ALL 

Mycrofts listener is hung on device MycroftOS_ALL - listener to “pulse” caused mic malfunction, but that’s most likely due to other operations missing. And with that setup a better responsiveness (at least that what my mind wants to tell me). The streams seem to duck just right, instead of warping into each other with the ducking one respond too late (most of the time). Thumbs up for that experience.:+1:

I’m very curious about the ncpamixer though, since my vlc AudioService -other than simple - is way below the average volume wise. And from the gif i take away that there’s a possibilty to tweak Services seperately.

That is most likely because of this;

I was tweaking and testing with different microphone default settings for mycroft. Apparently that one doesn’t work as aspected for USB mic’s

At the moment I am working on two task;

  • ReSpeaker 2mic HAT support (Output and Input, via PulseAudio)
  • Microphone / Input configuration mechanisms.

The latter basically means, that I want to have a similar configuration mechanism for the microphones as what I currently have for the soundcard outputs. That it just figures out which microphones are there, configure and use them. So what ever is connected, the device just works when it boots.

After that, I can finally work on the “first time / first boot” user experience. Wifi setup, pairing, configuration, etc.

That’s what i have meant. set it up this way:

“listener”: {
“mute_during_output”: false,
“device_name”: “pulse”
“device_name”: “MycroftOS_ALL”
}

Seriously, does that work? :man_facepalming:

Then it looks like you just solved my puzzle :crazy_face:

The “MycroftOS_ALL” is a combined sink within PulseAudio and therefor “output”. Now, PulseAudio is creating a so called .monitor source for every sink but never realized that could be the answer of my puzzle to create a combine source as well.

1 Like

I finally had some time for a brief test on a RaspPi3. Works.
Issues:

  • Cannot change the /etc/hostname - gets overwritten each reboot again
  • Mycroft Version is already outdated :slight_smile:
  • My Oehlbach USB Sound stick did not get recognized (the Fiio one works well)

Just as a small feedback. Keep up the great work!

One more:
My USB-Mic works fine, if I turn it on early enough after boot. If not, the system wont recognize it. Turning it off and on again after it got recognized in the first place, works fine too.

@Alcapond Thx for the feedback. Very much appreciated.

To comment on your findings;

  1. Indeed, that is still a task on the to-do list (somewhere above). At the moment I have a systemd service that changes the hostname to the OS-MACaddress. Need to think of a smart way to be overruled. For the moment, just disable the “hostname.service”

  2. Jup, currently working on the rpi4 so not been able to create a new rpi3 version with the latest 20.08 Somewhere in the future, you can easliy update your system via a web-gui uploading a small tar.gz file. Further on in the future these updates can and will be pushed OTA.

  3. Could you please be so kind to provide me the information you get when you run the command; lsusb

Interested to know which devices they are. I can then support them better through the proper udev rules, so they will be picked up and configured when they connect.

Keep it up with all the feedback.

mycroft@MycroftOS-caba62:~ $ lsusb
Bus 001 Device 008: ID 0d8c:0134
Bus 001 Device 009: ID 2912:120b
Bus 001 Device 005: ID 046d:c52b
Bus 001 Device 007: ID 0424:7800
Bus 001 Device 003: ID 0424:2514
Bus 001 Device 002: ID 0424:2514
Bus 001 Device 001: ID 1d6b:0002

The USB-Soundcard is this one: https://www.amazon.de/gp/product/B0144RLSG4

The USB mics are those: https://www.amazon.de/gp/product/B07H3KLHNJ/

Does that help?

Perfect. I will investigate if I can create udev rules that reconfigure and /or restart pulseaudio when the kernel sees them.

Keep you posted.

From

i get that the locales at some point in time were set up automatically resp. BR2_GENERATE_LOCALE was expanded to other languages. This isn’t the case with Alpha9.
Context: Using ‘ä’ in utterances like ‘Lautstärke 10’ isn’t processed correctly (by mycroft and lingua-franca (extract_number) by extension)

Locales are indeed generated at build time. Will have a look why alpha9 is missing something. The only thing I have still not in place it to check the tzdata based on location (probably IP) as I also noticed the timezone is not updated.

Isn’t this handled by mycroft itself with the ntp check on the basis of mycroft (selene) config? At least my clock is set properly UTC+2(CEST) - even 24hr, since i think i remember am/pm is the default.

I want to test the latest alpha, sadly this link seems to be down. Do you have a link for me? I wanna run a rpi4-4gb-ram with a ReSpeaker Mic Array v2.0.

Ah right, that could well the case. The other day I saw that my clock was 2 hours off but then again, most of the time I don’t go that far into the boot / configuration process and not even pair the device. Will have a closer look.

@suisat Apologies, I replaced the file, so apparently the url changes then as well
https://j1nx.stackstorage.com/s/nL7YeQFgHOBT04Im

Or have a look at the shared folder;
https://j1nx.stackstorage.com/s/6vIDwIIIlvYH3Vw

1 Like

I’m working with MycroftOS since 07. September 2020. It’s running without any fault. I changed from Picroft official image because after last update it runs very unreliable. With MycroftOS standard skills and own skills are running correctly. Very good job!

1 Like

What is a good hardware package to start with if you want to easily get this up and running?

I’m a total noob, I have absolutely no experience, and I want to start with all the right hardware to make it easy on me.

If you want to make a link to a comlete setup on Amazon or something it would be appriciated

What is your price-limit for the full device at the end (without 3d printed housing)?

If money is not an issue, I would go for an Raspberry Pi4 in combination with a ReSpeaker 2.0 USB mic / speaker combo.

The most easy and supported you will get is the Mark2 hardware itself. Yet this aren’t off-the-shelf products (besides pi4). You might want to check the officially tested hardware list.

Respeaker is a solid choice (esp. in terms of quality), but as seen in the latest dev syncs, the devs themselves have problems with the board and are somewhat fed up. On the contrary, MycroftOS comes with a solid ALSA/Pulse Audio setup that seem to cater to this board (atm!).