simpletts
A basic tss manager, based on Microsoft Speech API or espeak for others OS
Installation
$ npm install simpletts
Espeak (if not SAPI)
- On Linux
$ apt-get install espeak
- Or, download installer
http://espeak.sourceforge.net/download.html
Features
- simply read & play text
Doc
Attributes
defaultVoice: Voice (default = null)
forceEspeak: boolean (default = false)
Methods
getTTSSystem(void): "sapi" | "espeak"
getVoices(void): Promise<resolve<Array<Voice>>|reject<Error>>
isReading(void): boolean
read(Options|string): Promise<resolve<Options>|reject<Error>>
stopReading(void): Promise<resolve<void>|reject<Error>>
Interfaces
interface Voice {
name: string,
gender: "female" | "male"
}
interface Options {
text: string,
< voice: Voice|string, >
< integer volume, > // percentage, 0 -> 100, default 100
< integer speed > // percentage, 0 -> 100, default 50
}
ElectronJS
When using with electronjs in Windows, you can move "vbs" scripts to external folder and pass folder path in constructor.
/**
* move "listvoices.vbs" and "playtext.vbs" in
* "./node_modules/simpletts/batchs" to external folder.
* ex: ./plugins/vbs/*
*/
const { resolve } = require("path");
const SimpleTTS = require("simpletts");
const vbsFolders = resolve("plugins", "vbs");
const simpleTTS = new SimpleTTS(vbsFolders);
Examples
Bash
$ npx run-script simpletts "This is a test"
Typescript
import SimpleTTS = require("simpletts");
interface Voice {
name: string;
gender: "female" | "male";
}
interface Options {
text: string;
volume?: number;
speed?: number;
voice?: Voice | string;
}
const tts = new SimpleTTS();
tts.getVoices().then((voices: Array<Voice>) => {
return tts.read({
"text": "test",
"voice": voices[0]
});
}).then((options: Options) => {
console.log(options);
}).catch((err: Error) => {
console.log(err);
});
Native
const SimpleTTS = require("simpletts");
const tts = new SimpleTTS();
tts.getVoices().then((voices) => {
console.log(voices[0].name);
console.log(voices[0].gender);
}).catch((err) => {
console.log(err);
});
tts.read({ "text": "this is a test", "volume": 75, "speed": 60 }).then(() => {
console.log("Ok");
}).catch((err) => {
console.log(err);
});
tts.read("this is a test").then(() => { // is equal to { "text": "this is a test", "voice": voices[0], "volume": 100, "speed": 50 }
console.log("Ok");
}).catch((err) => {
console.log(err);
});
Tests
$ npm run-script tests