UNPKG

@agrigate/speech-to-text-wrapper

Version:

Wrapper around any <TextInput /> in React Native that provides support for speech to text functionality—powerful & ease to use

43 lines (33 loc) • 1.35 kB
import { NativeModules, NativeEventEmitter, PermissionsAndroid, Platform } from "react-native"; export const requestMicPermission = async () => { if (Platform.OS === 'android') { const granted = await PermissionsAndroid.request( PermissionsAndroid.PERMISSIONS.RECORD_AUDIO, { title: 'Microphone Permission', message: 'This app needs access to your microphone for speech recognition.', buttonNeutral: 'Ask Me Later', buttonNegative: 'Cancel', buttonPositive: 'OK', }, ); return granted === PermissionsAndroid.RESULTS.GRANTED; } return true; }; const { SpeechToText } = NativeModules; const emitter = new NativeEventEmitter(SpeechToText); export const startListening = (language?: string) => { SpeechToText.startListening(language ?? "en-US"); }; export const stopListening = () => { SpeechToText.stopListening(); }; export const onSpeechResults = (callback: (text: string) => void) => { return emitter.addListener('onSpeechResults', callback); }; export const onSpeechError = (callback: (error: string) => void) => { return emitter.addListener('onSpeechError', callback); }; import { SpeechToTextWrapper } from "./SpeechToTextWrapper"; export default SpeechToTextWrapper;