Practical overview
When it fits
Use it when an Expo or React Native application needs speech recognition through native iOS and Android services or the Web Speech API, especially when sharing application code across platforms is useful.
Who it is for
- React Native and Expo developers adding spoken input to mobile or web apps.
- Teams building voice-command interfaces or cross-platform speech-recognition workflows.
Documented uses
- Capture spoken input and show recognition results as transcript text.
- Handle recognition start, end, result and error events in an application.
- Add speech recognition across iOS, Android and web using a shared project interface.
- Use documented capabilities such as audio-file transcription, recording persistence or volume metering.
Requirements & limits
- The library wraps platform recognition services, so behavior depends on the corresponding platform API.
- The Expo config plugin configures required permissions and Android package visibility.
- The README recommends requesting permissions before recognition and documents an error event when permissions are denied.
- New Expo projects without native iOS and Android directories need a development build, according to the README.
- The public repository specifies TypeScript and an MIT license.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Install and configure the Expo library
Add the package and configure its Expo plugin and native project prerequisites.
Before you start
- A React Native and Expo project.
- npm and Expo CLI for package installation and native project generation.
- Microphone and speech-recognition permission messages for the app configuration.
Steps
Install the package with npm install expo-speech-recognition.
Add expo-speech-recognition to the Expo plugins configuration, optionally supplying permission messages and Android speech-service package names.
If the project does not yet have ios and android directories, generate the native project with npx expo run:android or npx expo run:ios.
Expected outcome
The package and config plugin are included in the Expo project, with native project generation documented for projects that need it.
Guide limitations
- The README says new Expo projects without native directories need a development build.
- This guide covers setup; it does not establish that a particular project configuration will work.
Request permission and receive a transcript
Wire the documented hook-based recognition flow into an application interface.
Before you start
- The package installed and Expo plugin configured.
- Microphone and speech-recognition permissions granted by the user.
Steps
Import ExpoSpeechRecognitionModule and useSpeechRecognitionEvent from expo-speech-recognition.
Register event handlers for start, end, result and error; read the transcript from the result event.
Request permissions before recognition and stop if they are not granted.
Start recognition with options such as lang, interimResults and continuous; call stop when the user finishes.
Expected outcome
The documented example updates recognition state and displays a transcript received in a result event.
Guide limitations
- The README warns that missing or denied permissions can produce a not-allowed error event.
- Recognition is provided through the platform APIs rather than a single independent engine.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 13 October 2026
- Original website title
- jamsch/expo-speech-recognition · Official homepage title · retained in its source language

