A Text to Speech NativeScript plugin for Android & iOS
- Android - TextToSpeech
- iOS - AVSpeechSynthesizer
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.
egghead lesson @ https://egghead.io/lessons/typescript-using-text-to-speech-with-nativescript
/// 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!
});
-
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
}
getAvailableLanguages(): Promise<Array<Language>>;
- returns an array of available languages (use to prevent using non-existing language/local codes)
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 💣