npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@gmessier/nitro-speech

v0.4.6

Published

React Native real-time Speech Recognition Library powered by Nitro Modules

Readme

@gmessier/nitro-speech

npm version license npm downloads

React Native real-time Speech Recognition Library powered by Nitro Modules

⚠️ This is @gmessier/nitro-speech package (npm). This package will be deprecated soon. Please switch to the new react-native-nitro-speech (npm)

The API is identical — no migration needed.

Key Features:

  • ⚡ Built with Nitro Modules for low-overhead native binding
  • 🌎 Supports 60+ languages
  • 🍎 The only library implementing new SpeechAnalyzer with SpeechTranscriber or DictationTranscriber API for iOS 26+ (with fallback to legacy SFSpeechRecognition for older versions)
  • 🧵 Full support of react-native-worklets - each method is accessible from any runtime
  • ⏱️ Timer for silence
    • Configurable and mutable autoFinishRecognitionMs value (default: 8 sec)
    • Callback onAutoFinishProgress fires periodically with a configurable interval
    • Configurable and mutable interval autoFinishProgressIntervalMs value (default: 1 sec) allows changing the value on the fly
    • Method resetAutoFinishTime resets the timer to the threshold
    • Method addAutoFinishTime adds ms once without changing threshold
    • Configurable volume-based sensitivity resetAutoFinishVoiceSensitivity for the timer from 0 to 1
  • 🎤 Rich user voice input management
    • Hook useVoiceInputVolume and method getVoiceInputVolume for displaying volume in dB and making smooth UI animations
    • Callback onVolumeChange for advanced use cases
  • 🧩 Session Lifecycle methods: prewarm and updateConfig
  • 👆 Configurable Haptic Feedback on start and finish
  • 🎚️ Speech-quality features: see full list here
  • 🔓 Embedded Permission handling
    • Callback onPermissionDenied and method getPermissions
    • Option requestPermission for prewarm method
  • 📦 Everything else that could be found in Expo or other libraries

Table of Contents

Installation

npm install @gmessier/nitro-speech react-native-nitro-modules
# or
yarn add @gmessier/nitro-speech react-native-nitro-modules
# or
bun add @gmessier/nitro-speech react-native-nitro-modules

Expo

This library works with Expo. You need to run prebuild to generate native code:

npx expo prebuild

Note: Make sure New Arch is enabled in your Expo configuration before running prebuild.

iOS

cd ios && pod install

Android

No additional setup required.

Permissions

More about permissions here

Android

No actions required. The library declares the required permission in its AndroidManifest.xml (merged automatically):

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.VIBRATE" />

iOS

Add the following keys to your app's Info.plist:

<key>NSMicrophoneUsageDescription</key>
<string>This app needs microphone access for speech recognition</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>This app needs speech recognition to convert speech to text</string>

Both permissions are required for speech recognition to work on iOS.

Features

| Feature | Documentation page | iOS | Android | | --------------------------------- | ------------------------------------------------------------------------------- | ------- | -------- | | Real-time transcription | Link 🔗 | ✅ | ✅ | | Full worklets support | Link 🔗 | ✅ | ✅ | | New advanced iOS models | Link 🔗 | ✅ | ✅ | | Locale support | Link 🔗 | ✅ | ✅ | | Auto-finish on silence | Link 🔗 | ✅ | ✅ | | Auto-finish progress | Link 🔗 | ✅ | ✅ | | Auto-finish progress interval | Link 🔗 | ✅ | ✅ | | Add Auto-finish Time | Link 🔗 | ✅ | ✅ | | Reset Auto-finish Time | Link 🔗 | ✅ | ✅ | | Reset Auto-finish Sensitivity | Link 🔗 | ✅ | ✅ | | Voice input volume | Link 🔗 | ✅ | ✅ | | Prewarm | Link 🔗 | ✅ | ✅ | | Update config | Link 🔗 | ✅ | ✅ | | Active state | Link 🔗 | ✅ | ✅ | | Haptic feedback | Link 🔗 | ✅ | ✅ | | Permission handling | Link 🔗 | ✅ | ✅ | | Background handling | Link 🔗 | ✅ | ✅ | | Repeating word filter | Link 🔗 | ✅ | ✅ | | Offensive word masking | Link 🔗 | iOS 26+ | ✅ | | Contextual strings | Link 🔗 | ✅ | ✅ | | Language model selection | Link 🔗 | Auto | ✅ | | Batch handling | Link 🔗 | Auto | ✅ | | Formatting quality | Link 🔗 | Auto | ✅ | | Transcription preset | Link 🔗 | ✅ | Auto | | Automatic punctuation | Link 🔗 | ✅ | Auto | | Atypical speech hint | Link 🔗 | ✅ | Auto | | getSupportedLocalesIOS | Link 🔗 | ✅ | X |

Requirements

  • React Native >= 0.76
  • New Arch Only
  • react-native-nitro-modules

Compatibility

react-native-nitro-modules published a version 0.35.0 that is incompatible with older versions.

If your project can't migrate to the latest version of react-native-nitro-modules, you can use the older versions of @gmessier/nitro-speech

| nitro-speech | react-native-nitro-modules | | ----------------------------------| -------------------------------------- | | @gmessier/nitro-speech < 0.3.* | react-native-nitro-modules < 0.35.0 | | @gmessier/nitro-speech >= 0.3.* | react-native-nitro-modules >= 0.35.0 | | react-native-nitro-speech * | react-native-nitro-modules >= 0.35.0 |

Contributions and feedback

If you hit an issue or want to request a feature, please open a GitHub issue or reach out to me on Discord / Twitter (X) — response is guaranteed.

Troubleshooting

Android Gradle sync issues

If you're having issues with Android Gradle sync, try running the prebuild for the library that causes the issue:

e.g. failed in react-native-nitro-modules:

cd android && ./gradlew :react-native-nitro-modules:preBuild

e.g. failed in react-native-worklets:

cd android && ./gradlew :react-native-worklets:preBuild

License

MIT