Wake word or stop while audio playing

Using both the NPR news skill and an audio playing skill that I am writing (perhaps others, but two seemed enough to report), I find that while the audio is playing, mycroft does not appear to be able to listen for its wake word nor able to respond to stop. Watching on the cli I don’t even see it trying. However while on the cli I can type “stop” or I can hit the top button, so clearly it is still able to respond if stop were recognized.

Is there some fundamental or programmatic limitation here? Is the audio simply masking the microphone enough to prevent it hearing?

Reading the spotify skill it seems that they pause on the recognizer starting. That implied to me that the regular mechanism is indeed at play. I tried again yelling directly into the mycroft and to my surprise it noticed me! So the problem indeed seems to be the speaker masking the microphone.

Given that the author of the spotify skill has taken this approach I guess this is the Best We Have Now ™? Are there plans for something better or do other people have other suggestions?

What you are looking for is called Acoustic Echo Cancellation (AEC)

Search the different channel for it to get up to speed.

Recap: not easy for the mark1

Ah yes, thanks. As ever, it is hard to know what to search for when you don’t know what it is called. For future readers, a relevant discussion seems to be at https://github.com/MycroftAI/mycroft-core/issues/57 and links therein.

Indeed, once you know what to search for it all comes to you.

In this case, if you know how to fix it, that could be 1000 bucks.:joy:

1 Like

Hi there @jberger, great question.

The key limitation here, as @j1nx has highlighted, is audio echo cancellation. While Mycroft can “listen” for the Wake Word while music is playing, Mycroft cannot currently do echo cancellation, meaning he also “hears” the music that is playing while listening to the Wake Word. Sometimes this may work, but often it does not.

This is why the Spotify Skill has a “ducking” option, to “duck” the audio.

We have a very large bounty on BountySource that deals with this specific issue;

Hi there @jberger, great question.

The key limitation here, as @j1nx has highlighted, is audio echo cancellation. While Mycroft can “listen” for the Wake Word while music is playing, Mycroft cannot currently do echo cancellation, meaning he also “hears” the music that is playing while listening to the Wake Word. Sometimes this may work, but often it does not.

This is why the Spotify Skill has a “ducking” option, to “duck” the audio.

We have a very large bounty on BountySource that deals with this specific issue;