sonus-api-caller
v0.1.9
Published
Open source cross platform decentralized always-on framework
Downloads
8
Maintainers
Readme
Sonus lets you quickly and easally add a VUI (Voice User Interface) to any hardware or software project. Just like Alexa, Google Now, and Siri, Sonus is always listening offline for a customizable hotword. Once that hotword is detected your speech is streamed to the cloud recognition service of your choice - then you get the results.
Platform Support
- [X] Linux - most major distros (Including Raspbian)
- [X] macOS
- [ ] Windows
Streaming Recognition Services
- [X] Google Cloud Speech
- [ ] Alexa Voice Services
- [ ] Wit.ai
- [ ] Microsoft Cognitive Services
- [ ] Houndify
Installation
npm install --save sonus
Dependencies
Generally, running npm install
should suffice. This module however, requires you to install SoX.
For most linux disto's
Recommended: use arecord
, which comes with most linux distros.
Alternatively:
sudo apt-get install sox libsox-fmt-all
For macOS
brew install sox
Usage
Configure out cloud speech recognition system of choice, like Google Cloud Speech API.
Add sonus and said recognizer:
const Sonus = require('sonus')
const speech = require('@google-cloud/speech')({
projectId: 'streaming-speech-sample',
keyFilename: './keyfile.json'
})
Add your keyword and initialize Sonus with a Snowboy hotword:
const hotwords = [{ file: 'resources/snowboy.umdl', hotword: 'snowboy' }]
const sonus = Sonus.init({ hotwords }, speech)
Create your own Alexa in less than a tweet:
Sonus.start(sonus)
sonus.on('hotword', (index, keyword) => console.log("!"))
sonus.on('final-result', console.log)
Full API Documentation
Versioning
This project uses semantic versioning as of v0.1.0
How do I set up Google Cloud Speech API?
Follow these instructions.
How do I make my own hotword?
Sonus uses Snowboy for offline hotword recognition. You can use their website or API to train a model for a new hotword. Hotword training must occur online through their web service.
Built #withsonus
If you've build a project with Sonus send a PR and include it here!
Authors
Evan Cohen: @_evnc
Ashish Chandwani: @ashishschandwa1
License
Licensed under MIT.