react-native-wakeword
Version:
Voice/Wake-word detection library for React Native
68 lines (65 loc) • 2.52 kB
text/typescript
// wakewords/audioRoutingConfig.ts
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; // .carAudio (CarPlay)
builtInReceiver?: RouteConfigEntry; // .builtInReceiver (earpiece)
builtInSpeaker?: RouteConfigEntry; // .builtInSpeaker
bluetoothA2DP?: RouteConfigEntry; // .bluetoothA2DP
bluetoothHFP?: RouteConfigEntry; // .bluetoothHFP
headphones?: RouteConfigEntry; // .headphones
// add more as needed
};
/** Temporary wake-word sensitivity used only while physical TTS audio plays. */
wakeWordDuringTTS?: {
threshold: number;
buffer_cnt: number;
};
};