espeak

text-to-speech using espeak cli program

node-espeak

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(errwav) {
  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(errwav) {});
 

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.