A node wrapper around pocketsphinx_continuous
pocketsphinx_continuous
binary on your path.It just uses the pocketsphinx_continuous command to listen for voice commands, and trying to detect your speech commands based on this. This means you could write your own speech to text scripts around that.
Since pocketsphinx_continuous is able to use dictionaries as arguments, you can get a pretty accurate result, without even transmitting data over the internet.
var Psc = require('pocketsphinx-continuous');
var ps = new Psc({
setId: '1337', // A "set id". See explanation below.
verbose: false // Setting this to true will give you a whole lot of debug output in your console.
});
This will return a new instance of pocketsphinx-continuous that you can listen to different events on:
This is called whenever a sentence or word is recognized and completed.
ps.on('data', function(data) {
});
This will only be called if verbose
is set to true
. It will give you all output from stderr from the parent process.
ps.on('debug', function(data) {
});
Something went wrong with the underlying pocketsphinx_continuous process. It was either closed or terminated. The err
parameter might be an exit code or an error object.
ps.on('error', function(err) {
});
For the sake of simplicity, I have used the so-called lmtool to generate a dictionary and language model. This will give you a download consisting of a couple of files, and they are usually named in a specific way. For example if your submission generated a "set id" of 1337, then the files inside the downloaded archive would be named (among other) 1337.lm and 1337.dic. These are the ones we use. So if you have downloaded a different dictionary and/or language model, you can rename them to an arbitrary string (preferrably both of them the same) and use that as the setId
config parameter.
When you use this module, make sure these files are in the working directory.
MIT