• Module Developer

    @jomwells is there any suspicious errors?

  • @jomwells Are you using rp3 as magic mirror? I did get sound respond now and it really ugly. I do try both sound on tv via hdmi and from usb sound card. Assume that too much modules from magic mirror load.

  • @sean I would like to know more about MMM-Gaction regarding the deviceModelId - this should be done since register the device in mmm-assistantmk2. What about deviceInstanceId, where and how to?

  • Module Developer

  • Module Developer

    @sun But In most cases, you might not need instance, because your mirror might be only one instance of your project. Instance is needed when action should select specific device for response. Try without instanceid first.

  • @sean Thank you so much.

  • @sean Yes, the pm2 error logs show some alsa related errors, I assume this is why the assistant doesn’t produce audio?

    [../deps/mpg123/src/output/alsa.c:90] error: initialize_device(): cannot set format S16_LE
    MESA-LOADER: failed to retrieve device information
    libGL error: MESA-LOADER: failed to retrieve device information
    [../deps/mpg123/src/output/alsa.c:94] error: initialize_device(): cannot set 1 channels

    I have a pretty fresh install of MagicMirror so shouldn’t be an issue of too many modules, im using an RPI3, and a USB sound card, thanks
    on a side note, to get the Hotword and Assistant module to choose the correct microphone, I have had to change the input device to

    device: 'plughw:1',

    however each time I reboot, the input devices change order and I need to edit the config file again, is there a way to stop them changing device number?

  • Module Developer

    Frankly says, I’m not an expert of system administration. Especially Alsa configuration is out of my ability.
    Anyway you should success this test.

    arecord -d 10 test.wav & aplay test.wav

    It should record your voice and play again.

    It means, your mic and speaker should be default device.

  • To anyone having issues with RPI3 and a USB sound card, the solution to this was to change ‘/home/pi/.asoundrc’ to:

    pcm.!default {
      type plug
      slave {
        pcm "hw:1,0"
    ctl.!default {
        type hw
        card 1

    (where the USB device is card 1)
    Thank you @Sean for your help, it is now working brilliantly, this is by far the best voice assistant module for MM!
    Is there any way to configure how long the result card displays on screen before hiding itself? If not, could this be added in a later version? thanks!

  • Module Developer

    Card display time is decided by card itself. Maybe I can hook the duration, but with some painful effort, not even clearly.
    The card itself is hardcoded, so there isn’t enough margin to manipulate. Originally the card would be planned to be used on specific device - smart tv, so ours has some limitation for full usage.
    For example, In smart tv, a user can decide to play or not the result of a YouTube search by remote controller, but we haven’t. That is why I implement YouTube player in this module. Other functions are the same.