This is documentation for the next SDK version. For up-to-date documentation, see the latest version (SDK 52).
A library that provides access to text-to-speech functionality.
expo-speech
provides an API that allows you to utilize Text-to-speech functionality in your app.
-
npx expo install expo-speech
If you are installing this in an existing React Native app, start by installing expo
in your project. Then, follow the additional instructions as mentioned by the library's README under "Installation in bare React Native projects" section.
import { View, StyleSheet, Button } from 'react-native';
import * as Speech from 'expo-speech';
export default function App() {
const speak = () => {
const thingToSay = '1';
Speech.speak(thingToSay);
};
return (
<View style={styles.container}>
<Button title="Press to hear some words" onPress={speak} />
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
backgroundColor: '#ecf0f1',
padding: 8,
},
});
import * as Speech from 'expo-speech';
Speech.maxSpeechInputLength
Type: number
Maximum possible text length acceptable by Speech.speak()
method. It is platform-dependent.
On iOS, this returns Number.MAX_VALUE
.
Speech.getAvailableVoicesAsync()
Returns list of all available voices.
List of Voice
objects.
Speech.isSpeakingAsync()
Determine whether the Text-to-speech utility is currently speaking. Will return true
if speaker
is paused.
Promise<boolean>
Returns a Promise that fulfils with a boolean, true
if speaking, false
if not.
Speech.pause()
Pauses current speech. This method is not available on Android.
Promise<void>
Speech.resume()
Resumes speaking previously paused speech or does nothing if there's none. This method is not available on Android.
Promise<void>
Speech.speak(text, options)
Parameter | Type | Description |
---|---|---|
text | string | The text to be spoken. Cannot be longer than |
options (optional) | SpeechOptions | A Default: {} |
Speak out loud the text given options. Calling this when another text is being spoken adds an utterance to queue.
void
SpeechEventCallback()
Parameter | Type |
---|---|
this | SpeechSynthesisUtterance |
ev | SpeechSynthesisEvent |
any
SpeechOptions
Name | Type | Description |
---|---|---|
_voiceIndex (optional) | number | - |
language (optional) | string | The code of a language that should be used to read the |
onBoundary (optional) | NativeBoundaryEventCallback | SpeechEventCallback | null | A callback that is invoked when the spoken utterance reaches a word. |
onDone (optional) | () => void | SpeechEventCallback | A callback that is invoked when speaking finishes. |
onError (optional) | (error: Error) => void | SpeechEventCallback | Only for: Android iOS A callback that is invoked when an error occurred while speaking. |
onMark (optional) | SpeechEventCallback | null | - |
onPause (optional) | SpeechEventCallback | null | - |
onResume (optional) | SpeechEventCallback | null | - |
onStart (optional) | () => void | SpeechEventCallback | A callback that is invoked when speaking starts. |
onStopped (optional) | () => void | SpeechEventCallback | A callback that is invoked when speaking is stopped by calling |
pitch (optional) | number | Pitch of the voice to speak |
rate (optional) | number | Rate of the voice to speak |
voice (optional) | string | Voice identifier. |
volume (optional) | number | Only for: Web Volume of the voice to speak Default: 1.0 |
Voice
Object describing the available voices on the device.
Name | Type | Description |
---|---|---|
identifier | string | Voice unique identifier. |
language | string | Voice language. |
name | string | Voice name. |
quality | VoiceQuality | Voice quality. |
WebVoice
Type: Voice
extended by:
Name | Type | Description |
---|---|---|
isDefault | boolean | - |
localService | boolean | - |
name | string | - |
voiceURI | string | - |