react-native-executorch
Version:
An easy way to run AI models in React Native with ExecuTorch
26 lines (22 loc) • 940 B
text/typescript
import { VADModule } from '../../modules/natural_language_processing/VADModule';
import { VADType, VADProps } from '../../types/vad';
import { useModuleFactory } from '../useModuleFactory';
/**
* React hook for managing a VAD model instance.
* @category Hooks
* @param VADProps - Configuration object containing `model` source and optional `preventLoad` flag.
* @returns Ready to use VAD model.
*/
export const useVAD = ({ model, preventLoad = false }: VADProps): VADType => {
const { error, isReady, isGenerating, downloadProgress, runForward } =
useModuleFactory({
factory: (config, onProgress) =>
VADModule.fromModelName(config, onProgress),
config: model,
deps: [model.modelName, model.modelSource],
preventLoad,
});
const forward = (waveform: Float32Array) =>
runForward((inst) => inst.forward(waveform));
return { error, isReady, isGenerating, downloadProgress, forward };
};