librespeaker based snips.ai audio server

I made a thing!



https://github.com/pyjamasam/snips-respeakerd



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.