Librespeaker based snips.ai audio server

This is a cross post from the SeeedStudio forum, but just so it gets visibility on this side of things I though I’d post it here.

I made a thing!

It uses librespeaker’s algorithms to capture from a Respeaker core v2 and then serves that audio data up in a snips.ai compatible way.
I have been playing with the Snowboy hot word detector due to its support for multiple personal hotwords, but it also works with the snips hotword detector.

Its currently captures audio directly from alsa instead of pulseaudio to reduce CPU usage (I still use pulseaudio to playback audio so I get the benefits of being able to mix multiple outputs easily, but since there is only a single audio consumer I went the alsa route).

This is a very early version and basically works, but there is still a lot of work that can be done on it.
It doesn’t support the more advanced features of the standard snips audio server for replay and timestamp marking as an example.
There is also some weirdness about multiple hotwords, sensitivities and the reported triggered hotword. (Thats a subject for another post).

I have been currently developing and testing this on my Respeaker Core V2’s, so I don’t know how well it works on other platforms.
Also I added support for reading the core’s button state so you can trigger the “hotword” with a physical push if you so desire.

I’d love any feedback, or comments, or what ever.

Thanks.
chris.

Really Nice ! I was trying to get the AEC feature of the core v2 with snips without succes.
Does it means that your code achieved that ?
Can you explain a bit more how to install and use it ?

Also, I’m using a custom wakeword, will i still be able to use it ?

Thanks for your work !!

Hi,

i really like what you did, great work!
But can you explain it a little bit more in detail. (How to setup and configure)
This would help a lot, thanks in advance :slight_smile: