diff --git a/crates/chanora_audio/src/ios_voice_unit.rs b/crates/chanora_audio/src/ios_voice_unit.rs index 44a4e2d..b730325 100644 --- a/crates/chanora_audio/src/ios_voice_unit.rs +++ b/crates/chanora_audio/src/ios_voice_unit.rs @@ -406,38 +406,20 @@ impl IosCaptureState { speech: true, } } else if vad_backend == crate::VadBackend::SileroOnnx { - match crate::vad::callback_vad_worker_policy( - voice_activity_mode, - vad_backend, - self.silero_coreml_worker.is_some(), - ) { - crate::vad::VadWorkerPolicy::UseWorker => { - let worker = self - .silero_coreml_worker - .as_ref() - .expect("policy checked worker"); - let enqueued = worker.try_send(capture_seq, &frame); - if !worker.is_stale(capture_seq) { - let p = worker.latest_probability(); - crate::vad::VadOutput { - probability: p, - speech: p >= 0.5, - } - } else if enqueued { - crate::vad::VadOutput { - probability: 0.0, - speech: false, - } - } else { - used_fallback_vad = true; - self.mark_vad_fallback_active(crate::VadBackend::SileroOnnx); - crate::vad::VoiceActivityDetector::process_10ms( - &mut self.vad_detector, - &frame, - ) + if let Some(worker) = self.silero_coreml_worker.as_ref() { + let enqueued = worker.try_send(capture_seq, &frame); + if !worker.is_stale(capture_seq) { + let p = worker.latest_probability(); + crate::vad::VadOutput { + probability: p, + speech: p >= 0.5, } - } - crate::vad::VadWorkerPolicy::UseFallback => { + } else if enqueued { + crate::vad::VadOutput { + probability: 0.0, + speech: false, + } + } else { used_fallback_vad = true; self.mark_vad_fallback_active(crate::VadBackend::SileroOnnx); crate::vad::VoiceActivityDetector::process_10ms( @@ -445,10 +427,13 @@ impl IosCaptureState { &frame, ) } - crate::vad::VadWorkerPolicy::NotModelBacked => crate::vad::VadOutput { - probability: 1.0, - speech: true, - }, + } else { + used_fallback_vad = true; + self.mark_vad_fallback_active(crate::VadBackend::SileroOnnx); + crate::vad::VoiceActivityDetector::process_10ms( + &mut self.vad_detector, + &frame, + ) } } else { crate::vad::VoiceActivityDetector::process_10ms(&mut self.vad_detector, &frame)