loadVadModel method
Load a VAD model.
Implementation
void loadVadModel(String? modelPath, {Map<String, dynamic>? config}) {
_ensureBackendType('onnx');
// Try to load native VAD if model path provided
if (modelPath != null && modelPath.isNotEmpty) {
try {
final pathPtr = modelPath.toNativeUtf8();
final handlePtr = calloc<RacHandle>();
final configPtr = calloc<RacVadOnnxConfigStruct>();
// Set config defaults
configPtr.ref.numThreads = 0; // Auto
configPtr.ref.sampleRate = 16000;
configPtr.ref.windowSizeMs = 30;
configPtr.ref.threshold = 0.5;
try {
final create =
_lib.lookupFunction<RacVadOnnxCreateNative, RacVadOnnxCreateDart>(
'rac_vad_onnx_create');
final result = create(pathPtr, configPtr.cast(), handlePtr);
if (result == RAC_SUCCESS) {
_vadHandle = handlePtr.value;
_vadUseNative = true;
}
} finally {
calloc.free(pathPtr);
calloc.free(handlePtr);
calloc.free(configPtr);
}
} catch (_) {
// Fall back to energy-based detection
_vadUseNative = false;
}
}
_isInitialized = true;
}