timbz
October 30, 2018, 8:41am
1
Hello there,
I am having problems setting up Picroft (2018-09-11 Stretch Lightning) using the ReSpeaker 2-Mics Pi HAT. I flashed the image and installed the ReSpeaker drivers as described in the Wiki . Now the audio test start-mycroft.sh audiotest
works but MyCroft doesn’t react to the wakeword. Is there anything I missed to setup? Anyone got that mic working with the latest Picroft image?
Thx
Hi there @timbz - if the audiotest
is working, but the Wake Word is not, it may indicate an error with the Precise
Wake Word engine - link .
If you have a look at;
/var/log/mycroft/voice.log
and
/var/log/mycroft/audio.log
are there any Precise-related messages?
If you run the CLI - mycroft-cli-client
- does the microphone in the bottom right hand corner constantly move?
timbz
October 30, 2018, 12:37pm
3
Hi,
the mic in the CLI does not move but I cannot find anything in the logs
/var/log/mycroft/voice.log
Summary
12:09:03.170 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/mycroft-core/mycroft/configuration/mycroft.conf loaded
12:09:03.182 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/mycroft-core/mycroft/configuration/mycroft.conf loaded
12:09:03.189 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /etc/mycroft/mycroft.conf loaded
12:09:03.196 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf loaded
12:09:03.205 - mycroft.identity:_load:44 - DEBUG - Loading identity
12:09:03.228 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:09:03.862 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/... HTTP/1.1" 200 334
12:09:03.880 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/mycroft-core/mycroft/configuration/mycroft.conf loaded
12:09:03.886 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /etc/mycroft/mycroft.conf loaded
12:09:03.892 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf loaded
12:09:03.900 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:09:04.578 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/.../setting HTTP/1.1" 200 3051
12:09:04.595 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:09:05.282 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/.../location HTTP/1.1" 200 4
12:09:05.309 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /etc/mycroft/mycroft.conf loaded
12:09:05.314 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf loaded
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm_dmix.c:990:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dsnoop.c:556:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
ALSA lib pcm_dmix.c:990:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dsnoop.c:556:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
12:09:07.063 - mycroft.client.speech.listener:create_wake_word_recognizer:243 - INFO - creating wake word engine
12:09:07.071 - mycroft.client.speech.hotword_factory:load_module:261 - INFO - Loading "hey mycroft" wake word via pocketsphinx
12:09:07.503 - mycroft.client.speech.listener:create_wakeup_recognizer:263 - INFO - creating stand up word engine
12:09:07.508 - mycroft.client.speech.hotword_factory:load_module:261 - INFO - Loading "wake up" wake word via pocketsphinx
12:09:07.664 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:09:08.277 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/... HTTP/1.1" 304 0
12:09:08.307 - mycroft.messagebus.client.ws:on_open:62 - INFO - Connected
12:09:10.683 - mycroft.client.speech.mic:listen:487 - DEBUG - Waiting for wake word...
12:10:49.557 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/mycroft-core/mycroft/configuration/mycroft.conf loaded
12:10:49.565 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:10:50.191 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/.../setting HTTP/1.1" 304 0
12:10:50.209 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:10:50.844 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/.../location HTTP/1.1" 304 0
12:10:50.888 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /etc/mycroft/mycroft.conf loaded
12:10:50.893 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf loaded
/var/log/mycroft/audio.log
Summary
12:09:03.312 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/mycroft-core/mycroft/configuration/mycroft.conf loaded
12:09:03.514 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/mycroft-core/mycroft/configuration/mycroft.conf loaded
12:09:03.711 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /etc/mycroft/mycroft.conf loaded
12:09:03.911 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf loaded
12:09:04.103 - mycroft.identity:_load:44 - DEBUG - Loading identity
12:09:04.118 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:09:04.766 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/... HTTP/1.1" 200 334
12:09:04.972 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/mycroft-core/mycroft/configuration/mycroft.conf loaded
12:09:05.141 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /etc/mycroft/mycroft.conf loaded
12:09:05.314 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf loaded
12:09:05.322 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:09:05.982 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/.../setting HTTP/1.1" 200 3051
12:09:05.999 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:09:06.642 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/.../location HTTP/1.1" 200 4
12:09:06.887 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /etc/mycroft/mycroft.conf loaded
12:09:07.105 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf loaded
12:09:07.524 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:09:08.193 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/.../subscription HTTP/1.1" 200 114
Carnegie Mellon University, Copyright (c) 1999-2011, all rights reserved
mimic developers, Copyright (c) 2016, all rights reserved
version: mimic-1.2.0.2 ()
12:09:09.278 - __main__:main:38 - INFO - Starting Audio Services
12:09:09.292 - mycroft.messagebus.client.ws:on_open:62 - INFO - Connected
12:09:09.314 - mycroft.audio.audioservice:get_services:58 - INFO - Loading services from /home/pi/mycroft-core/mycroft/audio/services/
12:09:09.343 - mycroft.audio.audioservice:load_services:102 - INFO - Loading chromecast
12:09:26.121 - mycroft.audio.audioservice:load_services:102 - INFO - Loading mopidy
12:09:26.144 - mycroft.audio.audioservice:load_services:102 - INFO - Loading mplayer
12:09:26.267 - mplayer__init__:<module>:20 - ERROR - install py_mplayer with pip install git+https://github.com/JarbasAl/py_mplayer
12:09:26.271 - mycroft.audio.audioservice:load_services:108 - ERROR - Failed to import module mplayer
ImportError("No module named 'py_mplayer'",)
12:09:26.276 - mycroft.audio.audioservice:load_services:102 - INFO - Loading simple
12:09:26.304 - mycroft.audio.audioservice:load_services:102 - INFO - Loading vlc
12:09:26.562 - mycroft.audio.audioservice:load_services:123 - ERROR - Failed to load service. NameError("no function 'libvlc_new'",)
12:09:26.567 - mycroft.audio.audioservice:load_services_callback:170 - INFO - Finding default backend...
12:09:26.571 - mycroft.audio.audioservice:load_services_callback:174 - INFO - Found local
12:10:49.557 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/mycroft-core/mycroft/configuration/mycroft.conf loaded
12:10:49.567 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:10:50.194 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/.../setting HTTP/1.1" 304 0
12:10:50.213 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:10:50.831 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/.../location HTTP/1.1" 304 0
12:10:50.875 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /etc/mycroft/mycroft.conf loaded
12:10:50.884 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf loaded
12:10:50.893 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/mycroft-core/mycroft/configuration/mycroft.conf loaded
12:10:50.900 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:10:51.557 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/.../setting HTTP/1.1" 304 0
12:10:51.573 - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): api.mycroft.ai:443
12:10:53.084 - urllib3.connectionpool - DEBUG - https://api.mycroft.ai:443 "GET /v1/device/.../location HTTP/1.1" 304 0
12:10:53.127 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /etc/mycroft/mycroft.conf loaded
12:10:53.135 - mycroft.configuration.config:load_local:109 - DEBUG - Configuration /home/pi/.mycroft/mycroft.conf loaded
Thx
Can you alter which microphone is selected using alsamixer
?
timbz
October 30, 2018, 12:42pm
5
What do you mean? I can select the mic in alsamixer
$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: seeed2micvoicec [seeed-2mic-voicecard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
Subdevices: 0/1
Subdevice #0: subdevice #0
Wait - can you do this with native alsa? I am also using the Respeaker 2 Mic hat, and was under the impression that PulseAudio was required.
timbz
October 30, 2018, 1:39pm
7
Well, the picroft image does not use pulseaudio and the Google AIY seems to work with alsa.
Ah - I followed this guide to install it: https://www.j1nx.nl/diy/diy-home-personal-ai-assistant-installing-configuration-part-4/ - which mentioned pulseaudio, but I’ll admit, if there is a less complicated route to output with Alsa I’d jump at it.
What is in your /etc/mycroft/mycroft.conf?
I’m going to try resetting mine to not use pulseaudio - simpler is better.
timbz
October 30, 2018, 2:01pm
9
$ cat /etc/mycroft/mycroft.conf
{
"play_wav_cmdline": "aplay %1",
"play_mp3_cmdline": "mpg123 %1",
"enclosure": {
"platform": "picroft"
},
"tts": {
"mimic": {
"path": "/home/pi/mycroft-core/mimic/bin/mimic"
}
},
"ipc_path": "/ramdisk/mycroft/ipc/"
}
I am also trying to avoid pulse audio
I’m seeing if I can setup /etc/asound.conf - perhaps I can select defaults there that will help…
Ok I have wakewords working, and the mpg123 config works - but it’s not speaking to me.
/etc/asound.cnf:
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
It will sing me a song, but not speak to me yet. I did have hw:1 in the mycroft.conf settings - so I’m trying to reboot without those in there.
timbz
October 30, 2018, 2:47pm
12
j1nx
October 30, 2018, 5:29pm
14
Yeah, I wrote that piece of information when the new lightning release was not yet available and based on the information at hand by that time, pulseaudio was a requirement in all the info snippets here and there.
I will investigate if pulseaudio is “really needed” or an alsa only setup could be done aswell.
However, for the moment I stepped away from raspbian and focussed on buildroot instead.
As soon as I am at the sound stuff within that project, I will investigate it more. Keep this thread under my bookmarks for now.
Ok - tried the lightening image. I did an update and ran the seeed guide.
I had to take out the hw:0,0 references from /etc/mycroft/mycroft.conf.
I added a small section to asound.conf:
ctl.!default {
type hw
card 1
}
This is how I set up alsamixer to consider it the default mixer.
The mpg123 output is working, but the main output does nothing (even if I type the say skill).
I also don’t see a mic level.
Digging more.
Digging has lead me to https://github.com/MycroftAI/mycroft-core/blob/dev/mycroft/client/speech/listener.py , which creates an intance of a Mutable Mic, a superclass of the Microphone from https://github.com/Uberi/speech_recognition/blob/master/speech_recognition/ init .py. My thinking is that it’s the device_index perhaps.
Listener.py uses config to get a “device_index” config. So I’ll try to find what config has for defaults for that.
No defaults - but this might work (since hte card index is 1) in /etc/mycroft/mycroft.conf:
"listener": {
"device_index": 1
},
Which is also the place to mess with wake words too…
Nope - still no mic levels or waking.
Well thats annoying. I added debug into client/speech/mic.py to log the parameters to the MutableMic, restarted mycroft, and then it seemed to work.
The only other thing I did, was cat the /ramdisk/mycroft/ipc/mic_level file to see what was in it… It was static until I stopped mycroft and started it again. I’m going to check what happens at a reboot. In case the problem is at start up.
Hmm - no dice on startup…
Try stopping and starting mycroft…
And it works - something about the way it is starting - perhaps a race condition in the parts that run?
So after a reboot, the processes seem to be there, but there is one write to the mic_level file during startup and no further writes. I used debug, and it seems to get a few reads, then stall in self.pyaudio_stream.read(size, exception_on_overflow=False) (called from MutableMicrophone, passed into the mic listen loop, found in the wait_until_wake_word method). Guess the next question is why that stream stalls, and then seems to be okay on a restart of mycroft (but not a reboot).
It’s not timing - sleeps dont help (the auto_run.sh has them anyway). I was comparing the env of my putty terminal with the console that auto run first starts the mycroft services, and didn’t find anything specific there. I have checked if there was a difference between source mycroft-core/start-mycroft.sh all
and ./mycroft-core/start-mycroft.sh all
but not seen a change in this behavior - it still only starts the second time.
I may try to log in with a screen and keyboard attached (which should put me at the console it’s started in I think), and see if a second run works or fails there, is my headless start making a difference? Nope - still loads with mic levels on the second time.
timbz
October 31, 2018, 12:47pm
19
You can add /etc/modprobe.d/alsa_base.conf
with:
# This sets the index value of the cards but doesn't reorder.
options snd_soc_simple_card index=0
options snd_bcm2835 index=1
# Does the reordering.
options snd slots=snd_soc_simple_card,snd_bcm2835
to change the sound card order
suisat
March 8, 2019, 9:46am
20
Hey @timbz
Did I understand that right? Did you got the ReSpeaker 2-Mics Pi HAT to run with picroft?