Nearly Perfected Mystique

    simpletts
    TypeScript icon, indicating that this package has built-in type declarations

    2.5.2 • Public • Published

    simpletts

    A basic tss manager, based on Microsoft Speech API or espeak for others OS

    Build status Coverage status Dependency status Dev dependency status Issues Pull requests

    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

    License

    ISC

    Install

    npm i simpletts

    DownloadsWeekly Downloads

    12

    Version

    2.5.2

    License

    ISC

    Unpacked Size

    15.1 kB

    Total Files

    10

    Last publish

    Collaborators

    • psychopoulet