text-to-speech using 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(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.