← all repositories
evancohen/sonus

Wake word detection that doesn't phone home until you speak

Sonus gives Node.js projects offline hotword detection, then streams speech to cloud STT only after you get its attention.

638 stars JavaScript Image · Video · Audio
sonus
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does Sonus is a Node.js library that adds voice control to hardware or software projects. It listens offline for a custom wake word using Snowboy, then streams your speech to Google Cloud Speech (or theoretically other services) for transcription. Results come back in real time.

The interesting bit The privacy split is the clever part: hotword detection runs locally, so the microphone isn’t constantly uploading audio to the cloud. Only after the wake word fires does anything leave your machine. The “create your own Alexa in less than a tweet” example actually fits in a tweet—it’s aggressively minimal.

Key highlights

  • Offline hotword detection via Snowboy (train custom wake words through their web service)
  • Supports Linux (including Raspbian) and macOS; Windows is listed but unchecked
  • Google Cloud Speech is the only fully implemented streaming backend—Alexa Voice Services, Wit.ai, Microsoft Cognitive Services, and Houndify are planned but not done
  • Requires SoX installed separately (arecord recommended on Linux, brew install sox on macOS)
  • Google Cloud credentials via GOOGLE_APPLICATION_CREDENTIALS env var or explicit keyfile path

Caveats

  • Windows support is listed as a checkbox but explicitly unchecked
  • Most streaming recognition services are aspirational—only Google Cloud Speech has a working checkmark
  • Snowboy hotword training must happen online through Kitt.ai’s service, so “offline” applies to runtime only
  • The README’s “dead simple” claim depends on you already having SoX and a Google Cloud Speech account configured

Verdict Good fit for Raspberry Pi tinkerers and anyone building a custom voice assistant who wants local wake-word privacy without writing C++. Skip it if you need Windows, want plug-and-play without cloud accounts, or require a backend other than Google Cloud Speech.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.