Skip to content

Latest commit

 

History

History
119 lines (101 loc) · 4.02 KB

API.md

File metadata and controls

119 lines (101 loc) · 4.02 KB

API Methods

Paramaters marked in bold are required

Require sonus and a cloud speech recognizer in your project:

const Sonus = require('sonus')
const speech = require('@google-cloud/speech')
const client = new speech.SpeechClient({
  projectId: 'streaming-speech-sample',
  keyFilename: ROOT_DIR +  'keyfile.json'
})

For more information about Google Cloud Speech see: https://cloud.google.com/speech/ Note: don't forget to enable billing!

Custom hotwords

You can train and download custom hotwords for sonus from https://snowboy.kitt.ai
In order to initialize Sonus you need to pass in 1 or more hotwords. Each hotword supports the following proporties: file - The path to your hotword model (either pmdl or umdl)
hotword - The string that represents your hotword (ex: "sonus")
sensitivity - (default '0.5') If you are getting a lot of false positives or are having trouble detecting your hotword adjusting this value shoud help

Example: (to be passed into the sonus constructor)

const hotwords = [
    {file: '/mymodel.pmdl', hotword: 'sonus'},
    {file: 'snowboy.umdl', hotword: 'snowboy'}]

Languages

Sonus lets you customize the language for streaming speech recognition. For details on supported languages see the docs for your streaming speech recognizer

Example: (to be passed into the sonus constructor)

const language = "en-US"

Initialize Sonus

Sonus's initialization accepts two paramaters:
options - an options object that contains your hotwords, language, etc

  • hotwords - an array of recognizable hotwords
  • language - streaming language recognition
  • speechContexts - Array of strings containing words/phrases so that the speech recognizer is more likely to recognize them.
  • recordProgram - (default 'rec') Supports:
    • 'rec' - Good for OSX
    • 'sox' - Sometimes rec is aliased to this (not often)
    • 'arecord'- Reccomended for low powered linux devices (Pi, CHIP, etc)
  • device - [Only for 'arecord'] device identifier. ex: "hw:1,0"

speechRecognizer - the speech recognizer of your choice

Example:

const sonus = Sonus.init({ hotwords, language, recordProgram: 'arecord' }, speech)

Start recognition

Pass your initialized sonus object into Sonus.start Example:

Sonus.start(sonus)

Pause recognition

Pass your initialized sonus object into Sonus.pause. Pausing recognition while streaming will not cancel the request, instead it will cause it to simulate the "end" of speech and return final results. Example:

Sonus.pause(sonus)

Resume recognition

Pass your initialized sonus object into Sonus.resume Example:

Sonus.resume(sonus)

Stop recognition

If you want to stop recognition enterly you can use Sonus.stop Example:

Sonus.stop(sonus)

Note that after recognition is stopped it can not be started again without creating an enterly new sonus instance.

Trigger keyword/hotword manually

You can manuall trigger a hotword by passing your initialized sonus object and an index into Sonus.trigger The indexes of your hotwords are base 1 and are deturmined by the order in which the hotwords are passed into Sonus.init

Exceptions

  • NOT_STARTED - will be thrown if you have not started sonus when this is called.
  • INVALID_INDEX - will be thrown if you pass an invalid index.

Example:

Sonus.trigger(sonus, 1)

sonus will be triggered with a hotword index of 1

You can also optionally specify an index of 0 and an arbitrary hotword that will be returned in the hotword event Example:

sonus.trigger(sonus, 0, 'some hotword')

sonus will be triggered with a hotword index of 1 and a hotword of some hotword

Passing a hotword with a valid index will override the hotword name and trigger that hotword Example:

sonus.trigger(sonus, 1, 'override')

Events

hotword partial-result final-result error