nativescript-community / texttospeech

Text to Speech NativeScript plugin for Android & iOS :loudspeaker:
http://nativescript-community.github.io/texttospeech/
MIT License
50 stars 24 forks source link
android ios nativescript nativescript-plugin nativescript-texttospeech texttospeech typescript

npm npm

@nativescript-community/texttospeech :loudspeaker:

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-community/texttospeech

This command automatically installs the necessary files, as well as stores @nativescript-community/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
const TextToSpeech = require('@nativescript-community/texttospeech');

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

const TTS = new TNSTextToSpeech();

const 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

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.

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

Example with language code only:

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

Example with locale:

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

Tip

Android Only Methods

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 :bomb: