Olical/snowball - I've created a voice activated bot for Discord servers in Clojure



So Snowball allows you to control your music and move people around Discord voice channels without touching your keyboard! This may be of use to some people in the community who happen to have a Discord server with their friends, but I thought this’d be more interesting because of the technology involved.

I had to integrate with Google Cloud Platform’s storage, synthesis and comprehension of audio. I also had to integrate with https://github.com/picovoice/porcupine for wake word detection, all of this involved processing of audio with Clojure. I could’ve done it efficiently but I ended up using transducers and I think it’s Fast Enough ™.

I even had to write a little C and Java for the Java Native Interface into Porcupine. It’s all tied together with a few core.async channels.

I think the project could serve as a good reference for working with Java, native libraries, GCP and audio all at once. I hope many people find this useful for all sorts of reasons!