UNPKG

@mhpdev/react-native-speech

Version:

A high-performance React Native library for text-to-speech on iOS and Android

155 lines 6.4 kB
import type { VoiceProps, VoiceOptions } from './NativeSpeech'; export default class Speech { /** * Gets a list of all available voices on the device * @param language - Optional language code to filter voices (e.g., 'en', 'fr', 'en-US', 'fr-FR'). * If not provided, returns all available voices. * @returns Promise<VoiceProps[]> Array of voice properties matching the language filter * @example * // Get all available voices * const allVoices = await Speech.getAvailableVoices(); * // Get only English voices * const englishVoices = await Speech.getAvailableVoices('en-US'); * // or * const englishVoices = await Speech.getAvailableVoices('en'); */ static getAvailableVoices(language?: string): Promise<VoiceProps[]>; /** * Sets the global options for all subsequent speak() calls * @param options - Voice configuration options * @example * Speech.initialize({ * pitch: 1.2, * rate: 0.8, * volume: 1.0, * language: 'en-US' * }); */ static initialize(options: VoiceOptions): void; /** * Resets all speech options to their default values * @example * Speech.reset(); */ static reset(): void; /** * Immediately stops any ongoing or in queue speech synthesis * @returns Promise<void> Resolves when speech is stopped * @example * await Speech.stop(); */ static stop(): Promise<void>; /** * Pauses the current speech at the next word boundary * @note on Android, API 26+ required due to missing onRangeStart support * @returns Promise<boolean> Resolves to true if speech was paused, false if nothing to pause * @example * const isPaused = await Speech.pause(); * console.log(isPaused ? 'Speech paused' : 'Nothing to pause'); */ static pause(): Promise<boolean>; /** * Resumes previously paused speech * @note on Android, API 26+ required due to missing onRangeStart support * @returns Promise<boolean> Resolves to true if speech was resumed, false if nothing to resume * @example * const isResumed = await Speech.resume(); * console.log(isResumed ? 'Speech resumed' : 'Nothing to resume'); */ static resume(): Promise<boolean>; /** * Checks if speech is currently being synthesized * @returns Promise<boolean> Resolves to true if speaking or paused, false otherwise * @example * const speaking = await Speech.isSpeaking(); * console.log(speaking ? 'Speaking' : 'Not speaking'); */ static isSpeaking(): Promise<boolean>; /** * Speaks text using current global options * @param text - The text to synthesize * @returns Promise<void> Resolves when speech completes * @throws If text is null or undefined * @example * await Speech.speak('Hello, world!'); */ static speak(text: string): Promise<void>; /** * Speaks text with custom options for this utterance only. Uses global options for any settings not provided. * @param text - The text to synthesize * @param options - Voice options overriding global settings * @returns Promise<void> Resolves when speech completes * @throws If text is null or undefined * @example * await Speech.speakWithOptions('Hello!', { * pitch: 1.5, * rate: 0.8, * language: 'en-US' * }); */ static speakWithOptions(text: string, options: VoiceOptions): Promise<void>; /** * Called when an error occurs during speech synthesis * @example * // Add listener * const subscription = Speech.onError(({id}) => console.log('Speech error', id)); * // Later, cleanup when no longer needed * subscription.remove(); */ static onError: import("react-native/Libraries/Types/CodegenTypes").EventEmitter<import("./NativeSpeech").EventProps>; /** * Called when speech synthesis begins * @example * // Add listener * const subscription = Speech.onStart(({id}) => console.log('Started speaking', id)); * // Later, cleanup when no longer needed * subscription.remove(); */ static onStart: import("react-native/Libraries/Types/CodegenTypes").EventEmitter<import("./NativeSpeech").EventProps>; /** * Called when speech synthesis completes successfully * @example * const subscription = Speech.onFinish(({id}) => console.log('Finished speaking', id)); * // Cleanup * subscription.remove(); */ static onFinish: import("react-native/Libraries/Types/CodegenTypes").EventEmitter<import("./NativeSpeech").EventProps>; /** * Called when speech is paused * @note on Android, API 26+ required due to missing onRangeStart support * @example * const subscription = Speech.onPause(({id}) => console.log('Speech paused', id)); * // Cleanup * subscription.remove(); */ static onPause: import("react-native/Libraries/Types/CodegenTypes").EventEmitter<import("./NativeSpeech").EventProps>; /** * Called when speech is resumed * @note on Android, API 26+ required due to missing onRangeStart support * @example * const subscription = Speech.onResume(({id}) => console.log('Speech resumed', id)); * // Cleanup * subscription.remove(); */ static onResume: import("react-native/Libraries/Types/CodegenTypes").EventEmitter<import("./NativeSpeech").EventProps>; /** * Called when speech is stopped * @example * const subscription = Speech.onStopped(({id}) => console.log('Speech stopped', id)); * // Cleanup * subscription.remove(); */ static onStopped: import("react-native/Libraries/Types/CodegenTypes").EventEmitter<import("./NativeSpeech").EventProps>; /** * Called during speech with progress information * @note on Android, API 26+ required due to missing onRangeStart support * @example * const subscription = Speech.onProgress(progress => { * console.log(`Speaking progress`, progress); * }); * // Cleanup when component unmounts or listener is no longer needed * subscription.remove(); */ static onProgress: import("react-native/Libraries/Types/CodegenTypes").EventEmitter<import("./NativeSpeech").ProgressEventProps>; } //# sourceMappingURL=Speech.d.ts.map