text-to-speech via espeak cli program
This simply uses the eSpeak cli program to generate wav audio data from text strings. You can then use the raw binary data to output to a file, send as a http download, get as a base64-encoded data URI string, or whatever else.
$ npm install espeak
var espeak = require('espeak');
// optionally set the path to the `espeak` cli program if it's not in your PATH
//espeak.cmd = '/usr/bin/espeak';
espeak.speak('hello world', function(err, wav) {
if (err) return console.error(err);
// get the raw binary wav data
var buffer = wav.buffer;
// get a base64-encoded data URI
var dataUri = wav.toDataUri();
});
// optionally add custom cli arguments for things such as pitch, speed, wordgap, etc.
espeak.speak('hello world, slower', ['-p 60', '-s 90', '-g 30'], function(err, wav) {});
There are some related modules, although there seems to be some scattered forks and it wasn't clear to the author which was updated and/or compatible with Node.js/npm at the time of writing this.