Skip to content

svzi/nativescript-texttospeech

 
 

Repository files navigation

npm npm

NativeScript-TextToSpeech 📢

A Text to Speech NativeScript plugin for Android & iOS

Native Controls

Installation

Run the following command from the root of your project:

$ tns plugin add nativescript-texttospeech

This command automatically installs the necessary files, as well as stores nativescript-texttospeech as a dependency in your project's package.json file.

Video Tutorial

egghead lesson @ https://egghead.io/lessons/typescript-using-text-to-speech-with-nativescript

Usage

/// javascript
var TextToSpeech = require("nativescript-texttospeech");


/// TypeScript
import { TNSTextToSpeech, SpeakOptions } from 'nativescript-texttospeech';

let TTS = new TNSTextToSpeech();

let speakOptions: SpeakOptions = {
    text: 'Whatever you like', /// *** required ***
    speakRate: 0.5 // optional - default is 1.0
    pitch: 1.0 // optional - default is 1.0
    volume: 1.0 // optional - default is 1.0
    locale: "en-GB"  // optional - default is system locale,
    finishedCallback: Function // optional
}

// Call the `speak` method passing the SpeakOptions object
TTS.speak(speakOptions).then(() => {
    // everything is fine
}, (err) => {
    // oops, something went wrong!
});

API

  • speak(options: SpeakOptions): Promise<any> - start speaking with the given options

  • pause(): void - pause the speech

  • resume(): void - resume the speech

  • destroy(): void - release resources for the speech synthesizer/engine

  • SpeakOptions = {}

    • text: string ** required **
    • queue?: boolean = false
    • pitch?: number = 1.0
    • speakRate?: number = 1.0
    • volume?: number = 1.0
    • locale?: string = default system locale
    • language?: string = default system language ** Android only **
    • finishedCallback?: Function

If you wish to set a custom locale, you need to provide a valid BCP-47 code, e.g. en-US. If you wish to set only a custom language (without a preferred country code), you need to provide a valid ISO 639-1 language code. If both are set, the custom locale will be used.

The plugin checks whether the supplied locale/language code has the correct syntax but will not prevent setting a nonexistent codes. Please use this feature with caution.

Example with language code only:

let speakOptions: SpeakOptions = {
    text: 'Whatever you like', // *** required ***
    language: "en"  // english language will be used
}

Example with locale:

let speakOptions: SpeakOptions = {
    text: 'Whatever you like', // *** required ***
    locale: "en-AU"  // australian english language will be used
}

Android Only Methods

  • getAvailableLanguages(): Promise<Array<Language>>; - returns an array of available languages (use to prevent using non-existing language/local codes)

Credits

Inspired by James Montemagno's TextToSpeech Xamarin plugin

Thanks to anarchicknight for this plugin. Thanks to stefalda for his great work on pause/resume and the finishedCallback events 💣

About

Text to Speech NativeScript plugin for Android & iOS 📢

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 100.0%