Release 0.4.0 (07-05-2026)
🔥 Complete revamp of the iOS architecture
- Coordinator selects the best candidate from
SpeechTranscriber,DictationTranscriberandSFSpeechRecognitionbased on your configuration - If candidate fails -> the next best option is selected
- Prewarm support -> confirms locale availability, downloads required assets, precomputes heavy operations
- Transcriber cache - if important config values weren't changed -> Transcriber skips all needless work
- Live updates of
autoFinishRecognitionMs,autoFinishProgressIntervalMs,resetAutoFinishVoiceSensitivityduring the active session (including from worklets) - 60+ locales available, use
getSupportedLocalesIOS()to get the full list - Transcriber presets for short or general conversation
- Atypical speech support
- Lots of micro optimizations
❗️Breaking Changes
1. Voice Input Volume - new interface VolumeChangeEvent
Hook useVoiceInputVolume(): number -> useVoiceInputVolume(): VolumeChangeEvent
Callback onVolumeChange: (event: number) => void -> onVolumeChange: (event: VolumeChangeEvent) => void
interface VolumeChangeEvent {
// This is the "number" from previous version
smoothedVolume: number
// New data from Audio Buffer
rawVolume: number
db?: number
}
2. updateAutoFinishTime() is deprecated
Use updateConfig instead
updateConfig(
newConfig?: MutableSpeechRecognitionConfig,
resetAutoFinishTime?: boolean
): void
3. Few renaming
Static instance
RecognizerSession -> SpeechRecognizer
Default volume change handler
unsafe_onVolumeChange -> speechRecognizerVolumeChangeHandler
Types:
RecognizerHandlers -> RecognizerMethods
SpeechToTextParams -> SpeechRecognitionConfig
✨ Features
- Full support of
react-native-worklets(use v0.8.0+ for Android) - Finally added full support
onAutoFinishProgressfor Android - Added property
autoFinishProgressIntervalMsfor config - interval betweenonAutoFinishProgress - Added property
resetAutoFinishVoiceSensitivityfor config - The voice detector sensitivity to reset the silence timer based on volume, from 0 to 1 - Added static method
resetAutoFinishTime- resets the Timer to the threshold - Added static method
updateConfig- updates config softly (If the new property is null, the previous one is retained) during active session - Added static method
prepare- prepares resources, downloads assets, confirms locale availability
🐛 Bug Fixes
- Android release build crash with Proguard enabled
- Android cpp-adapter missed facebook::jni
- iOS - if locale isnt supported by
SpeechTranscriberorDictationTranscriber-> recognition fails - iOS - if Transcriber fails -> no fallback activated
- iOS - Voice sensitivity is locked as magic number
- iOS - Tasks could get into race condition
- Both - Timer got reset due to partial results even if the actual results were empty