🎤 Easy speech recognition in Node!
Switch branches/tags
Nothing to show
Clone or download
Latest commit 52e48bb May 11, 2017
Permalink
Failed to load latest commit information.
examples example Feb 27, 2016
README.md readme May 11, 2017
cli.js fix local path Feb 27, 2016
index.js clean up Nov 12, 2016
listen.js clean up Nov 12, 2016
package.json 1.0.7 Dec 1, 2016

README.md

electron-speech

Speech recognition in node and the browser using Electron.

DEFUNCT

It seems that Google has shut down the Chrome Speech API for use in shell environments like Electron, which electron-speech relies on.

Some other promising projects include:

  1. Sonus: node module that is optimized for low powered devices and provides customizable offline hotword detection with real-time streaming results (via Google Cloud Speech and others).
  2. If you are looking for a purely offline option: node-pocketsphinx
  3. Jasper looks promising, but is Python-based. Go forth and write a node wrapper around it!

Prerequisites

If you want to use the API from a script using Node, you will need to launch your script using the electron-spawn command instead of the node command:

$ npm install -g electron-spawn

$ electron-spawn example.js

Usage

CLI

This module installs the electron-speech command:

$ electron-speech
listening..
(whatever is said is written here, to stdout)

-q|--quiet to omit the listening.. message. (it's on stderr anyways though)

-c|--continuous to keep on listening after each result.

API

var Speech = require('electron-speech')

var recog = Speech({
  lang: 'en-US',
  continuous: true
})

recog.on('text', function (text) {
  console.log(text)
});

recog.listen()

Methods

var speech = Speech(opts)

Returns speech, an EventEmitter and Readable stream.

opts accepts multiple keys:

  • opts.lang - recognize speech in the language lang. Defaults to 'en-US'.
  • opts.continuous - if true, text events will keep on being emitted as recognition occurs.

speech.listen()

Starts listening to speech via the microphone. 'ready'` will be emitted once speech recognition has begun.

speech.pipe(stream)

Uses speech as a readable stream for text rather than an event emitter. Results have newlines appended to them for parsing convenience.

speech.on('ready')

Emitted when the microphone has begun to listen for speech.

speech.on('text', function (text) {})

Emitted when speech has been recognized.

speech.on('error', function (err) {})

Emitted when an error has occurred in recognition.

speech.on('close')

Emitted when recognition has ended. Does not fire if continuous was set to true.

License

ISC