pocketsphinx
A Pocket Sphinx binding for Node.JS, focusing on continuous recognition.
This repo is experimental and out-of-date. I strongly recommend checking out the much better supported cmupsphinx fork.
Installing
pocketsphinx requires CMU's Pocket Sphinx libraries. You can build and install it yourself, but I highly recommend just getting it from a package manager. For Mac OSX I highly recommend homebrew. It makes this a snap:
brew install cmu-pocketsphinx
Usage
A PocketSphinx object is a writable stream that accepts mono 16 kHz 16-bit PCM data. When an utterance is detected, e.g. a phrase, word, or statement, the object emits an utterance event with the details of the detected utterance.
var PocketSphinx = require('pocketsphinx');
var ps = new PocketSphinx();
ps.on('utterance', function(hyp, utt, score) {
console.log( 'Guessed phrase: ' + hyp);
console.log( 'Confidence score: ' + score);
console.log( 'Unique utterance id: ' + utt);
});
ps.write(myMicrophoneData);
Data can be retrieved from files, but the demo shows how to use getUserMedia and Socket.io to stream data from a web frontend. This is also a good demo of how to use getUserMedia for cool stuff, considering the documentation for it is a little sparse.
Notes
This is still in active development. It has only been tested on Mac OSX 10.9.2 with Pocket Sphinx installed using homebrew.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
