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?
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.
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;
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;