Audio In and Out working, but Mycroft can't hear me

I’ve been at this for a little while, juggling alsamixer and pulseaudio, and I’m at the point of just asking for help.

I have a Seed Respeaker 4mic array attached to a pi3. Audio output through the 3.5mm headphone jack.

mycroft-mic-test works. I can record audio, and I can hear audio played back.

mycroft-setup-wizard sort of works. I can record audio during the mic-test portion, but I can’t hear anything back. No errors or anything while I do this.

I can see on the lower right-hand side of the console that I have working audio input, but Mycroft can’t hear me. There’s no STT happening.

What am I missing here?

Hi there @teslas_moustache - what do your logs say (see /var/log/mycroft/*)

Hi! I forgot to do a greeting, so greetings!

It’s an odd thing, but I slept on it, and when I woke up just a few minutes ago, it seems like everything works. :woman_shrugging:

I suppose I’ll be back when it inexplicably stops working again.

1 Like

Is there anything in your log files that explains the issue at all?

No, there’s too much to dig through. I don’t see anything obvious.

OK, it has happened again. I have audio out through the connected monitor (HDMI) and audio in works during testing, but Mycroft doesn’t receive audio input.

What is the preferred method of posting logs? Which logs would be useful here?

EDIT: I should be clear that this is occurring again as I have reinstalled Picroft. On an unrelated note, I tried to get the AIY Voicekit working on the same install as the Respeaker, and that definitely did not work out.

Hi there @teslas_moustache, thanks for reporting that this happened again.
Couple of questions;

  • what sort of device are you using for your audio in?
  • have you made any edits to mycroft.conf for your audio?

The logs that would be useful are primarily you

  • audio.log and
  • voice.log
    They should be findable at /var/log/mycroft on the device.

When you reinstalled Picroft, did you go through the setup menu to select your audio devices?

The audio in is a Seeed Respeaker 4mic array.
I have not made any edits to that file

audio.log https://pastebin.com/JDs9pXKb

voice.log https://pastebin.com/zWPY9V8P

I did go through the setup menu.

There are a few things that I can see in the log.

  • The log says that your Wake Word is set to Hey Jarvis. I’m going to assume that this was set on home.mycroft.ai - however we don’t have a trained model for Precise for the phrase Hey Jarvis, so it is using a fallback to PocketSphinx. If you set the Wake Word to the default Hey Mycroft at home.mycroft.ai, does it change anything at all?

  • In your skills.log do you see any lines that have [Utterance] in them? If Mycroft is recording Utterances then it is likely that your microphone is OK, it’s just that Mycroft can’t hear the Wake Word very well.

Changing the wake word back to Mycroft doesn’t change anything.

The only mentions of “utterance” in skills.log are the ones I have typed into mycroft-cli-client.

In case I’m not explaining this well, here’s a photo of the mic level in mycroft-cli-client:

Again, I am able to run tests and hear everything fine. It is only Mycroft that does not appear to be looking at this input.

I had the same problem with my seeed-4mic-array hat.

I downloaded the newest pycroft image.
I installed the drivers as described here:
(http) ://wiki.seeedstudio.com/ReSpeaker_4_Mic_Array_for_Raspberry_Pi/
I enabled the sudo password requirement

Testing the audio with mycrofts audio test commands worked fine, but in cli mic level was not showing. And mycroft didn’t recognize the wake word, no matter how loud I screamed.

Through luck I noticed, that if one starts the components of mycroft (bus, speed, audio, skills) per hand it just worked. With meter showing and everything.

To replicate:

change to root user

su

activate the virtual environment by executing the venv-activate.sh script under /home/pi/mycroft-core/

source /home/pi/mycroft-core/venv-activate.sh

start the components (since they are blocking the shell, you either have to open multiple terminals or run the command in the background)

python3 -m mycroft.messagebus.service
python3 -m mycroft.client.speech
python3 -m mycroft.audio
python3 -m mycroft.skills

You find the module names in this file: mycroft-core/start-mycroft.sh at dev · MycroftAI/mycroft-core · GitHub

(I’ve written down these commands from memory, so might contain some errors)

After that you can start the cli just like normal and should see the meter moving. Be sure to stop all mycroft process you had running before attempting that.

Let me now if that works for you, or if that magic only works for me :wink:

1 Like

OK, that’s interesting. The fact you have to run that as su indicates to me that there’s a permission error somewhere.

I don’t know if it’s bad in this scenario, but running processes as root is usually not what you want.

So I wonder if it’s not the Respeaker files which actually need broader permissions.

Might chmod 777 that stuff.

Yeah, it pains me greatly to run it as root. The original reason for that, was that I had to run mycroft as sudo to avoid permission errors, with mycroft itself. It might really be a permission error with the driver, but that would be really wierd. I mean its just a audio source like any else and shouldn’t require special permission. (Other programms use it just fine)
So I don’t know where to start looking for an error here.

1 Like