The Go bindings for snowboy audio detection (https://github.com/Kitt-AI/snowboy) are generated using swig which creates a lot of extra types and uses calls with variable arguments. This makes writing integrations in golang difficult because the types aren't explicit. go-snowboy is intended to be a wrapper around the swig-generated Go code which will provide Go-style usage.
See https://godoc.org/github.com/brentnd/go-snowboy
- SWIG (v 3.0.12 recommended)
- github.com/Kitt-AI/snowboy/swig/Go
Example usage in example/cmd.go
, example/fixed.go
.
go build -o build/detect example/cmd.go
usage: ./build/detect <resource> <keyword.umdl> <audio file>
Makefile
has some standard targets to do go build
steps
- Support other functions of SnowboyDetect (Reset, GetSensitivity, UpdateModel, NumHotwords, SampleRate, NumChannels, BitsPerSample)
- Support overloads for RunDetection, Go-style
- Add net/http server style callback registration for different keywords
- Add DetectFromWav(io.Reader) to run detection on a file
- If possible, clean up the way Keywords are declared and returned. Use just plain strings?