react-native-wakeword
Version:
Voice/Wake-word detection library for React Native
51 lines (50 loc) • 2.37 kB
TypeScript
export type PreferredAudioInput = 'bluetoothHighQualityMic' | 'builtInMic' | 'none';
export type RouteConfigEntry = {
category: 'playAndRecord' | 'record' | 'soloAmbient' | 'ambient' | 'playback';
mode: 'default' | 'measurement' | 'voiceChat' | 'videoRecording' | 'gameChat';
options: ('mixWithOthers' | 'duckOthers' | 'allowBluetooth' | 'allowBluetoothHFP' | 'allowBluetoothA2DP' | 'bluetoothHighQualityRecording' | 'allowAirPlay' | 'defaultToSpeaker' | 'overrideMutedMicrophoneInterruption')[];
/** First input policy to try. HD Bluetooth requires iOS 26, mode=default, and bluetoothHighQualityRecording. */
preferredInput: PreferredAudioInput;
/**
* Forced fallback after an HD Bluetooth request fails. builtInMic switches
* to phone-mic + A2DP; none switches to ordinary headset HFP.
*/
forceFallback?: PreferredAudioInput;
/** Lowercase JSON alias for forceFallback. Prefer forceFallback in TypeScript. */
forcefallback?: PreferredAudioInput;
/** Backward-compatible alias for forceFallback. */
preferredInputFallback?: PreferredAudioInput;
/** Additional forced fallback after forceFallback. */
forceFallback1?: PreferredAudioInput;
/** Lowercase JSON alias for forceFallback1. */
forcefallback1?: PreferredAudioInput;
/** Backward-compatible alias for forceFallback1. */
preferredInputFallback1?: PreferredAudioInput;
/** Final forced fallback. */
forceFallback2?: PreferredAudioInput;
/** Lowercase JSON alias for forceFallback2. */
forcefallback2?: PreferredAudioInput;
/** Backward-compatible alias for forceFallback2. */
preferredInputFallback2?: PreferredAudioInput;
};
export type AudioRoutingConfig = {
/** Wake-word-only AEC preferences for regular capture and physical TTS playback. */
WakewordAEC?: {
regular: boolean;
duringTTS: boolean;
};
default: RouteConfigEntry;
byOutputPort: {
carAudio?: RouteConfigEntry;
builtInReceiver?: RouteConfigEntry;
builtInSpeaker?: RouteConfigEntry;
bluetoothA2DP?: RouteConfigEntry;
bluetoothHFP?: RouteConfigEntry;
headphones?: RouteConfigEntry;
};
/** Temporary wake-word sensitivity used only while physical TTS audio plays. */
wakeWordDuringTTS?: {
threshold: number;
buffer_cnt: number;
};
};