@capacitor-community/text-to-speech
Capacitor community plugin for synthesizing speech from text.
Maintainer | GitHub | Social |
---|---|---|
Robin Genz | robingenz | @robin_genz |
npm install @capacitor-community/text-to-speech
npx cap sync
According to the Android documentation, apps targeting Android 11 should declare TextToSpeech.Engine.INTENT_ACTION_TTS_SERVICE in the queries elements of their manifest:
<queries>
<intent>
<action android:name="android.intent.action.TTS_SERVICE" />
</intent>
</queries>
Here you can find an example commit.
No configuration required for this plugin.
A working example can be found here: robingenz/capacitor-plugin-demo
import { TextToSpeech } from '@capacitor-community/text-to-speech';
const speak = async () => {
await TextToSpeech.speak({
text: 'This is a sample text.',
lang: 'en_US',
rate: 1.0,
pitch: 1.0,
volume: 1.0,
category: 'ambient',
});
};
const stop = async () => {
await TextToSpeech.stop();
};
const getSupportedLanguages = async () => {
const languages = await TextToSpeech.getSupportedLanguages();
};
const getSupportedVoices = async () => {
const voices = await TextToSpeech.getSupportedVoices();
};
const isLanguageSupported = async (lang: string) => {
const isSupported = await TextToSpeech.isLanguageSupported({ lang });
};
speak(...)
stop()
getSupportedLanguages()
getSupportedVoices()
isLanguageSupported(...)
openInstall()
- Interfaces
speak(options: TTSOptions) => Promise<void>
Starts the TTS engine and plays the desired text.
Param | Type |
---|---|
options |
TTSOptions |
stop() => Promise<void>
Stops the TTS engine.
getSupportedLanguages() => Promise<{ languages: string[]; }>
Returns a list of supported BCP 47 language tags.
Returns: Promise<{ languages: string[]; }>
getSupportedVoices() => Promise<{ voices: SpeechSynthesisVoice[]; }>
Returns a list of supported voices.
Returns: Promise<{ voices: SpeechSynthesisVoice[]; }>
isLanguageSupported(options: { lang: string; }) => Promise<{ supported: boolean; }>
Checks if a specific BCP 47 language tag is supported.
Param | Type |
---|---|
options |
{ lang: string; } |
Returns: Promise<{ supported: boolean; }>
openInstall() => Promise<void>
Verifies proper installation and availability of resource files on the system.
Only available for Android.
Prop | Type | Description |
---|---|---|
text |
string |
The text that will be synthesised when the utterance is spoken. |
lang |
string |
The language of the utterance. Possible languages can be queried using getSupportedLanguages . Default: en-US . |
rate |
number |
The speed at which the utterance will be spoken at. Default: 1.0 . |
pitch |
number |
The pitch at which the utterance will be spoken at. Default: 1.0 . |
volume |
number |
The volume that the utterance will be spoken at. Default: 1.0 . |
voice |
number |
The index of the selected voice that will be used to speak the utterance. Possible voices can be queried using getSupportedVoices . Only available for Web. |
category |
string |
Select the iOS Audio session category. Possible values: ambient and playback . Use playback to play audio even when the app is in the background. Only available for iOS. Default: ambient . |
The SpeechSynthesisVoice interface represents a voice that the system supports.
Prop | Type | Description |
---|---|---|
default |
boolean |
Specifies whether the voice is the default voice for the current app (true ) or not (false ). |
lang |
string |
BCP 47 language tag indicating the language of the voice. Example: en-US . |
localService |
boolean |
Specifies whether the voice is supplied by a local (true ) or remote (false ) speech synthesizer service. |
name |
string |
Human-readable name that represents the voice. Example: Microsoft Zira Desktop - English (United States) . |
voiceURI |
string |
Type of URI and location of the speech synthesis service for this voice. Example: urn:moz-tts:sapi:Microsoft Zira Desktop - English (United States)?en-US . |
See CHANGELOG.md.
See LICENSE.