pub fn default_whisper_params<'a, 'b>(
vad_model_path: Option<&str>,
) -> whisper_rs::FullParams<'a, 'b> {
let mut params =
whisper_rs::FullParams::new(whisper_rs::SamplingStrategy::Greedy { best_of: 5 });
params.set_temperature(0.0);
params.set_temperature_inc(0.2); params.set_entropy_thold(2.4); params.set_logprob_thold(-1.0); params.set_no_speech_thold(0.6); params.set_suppress_blank(true);
if let Some(path) = vad_model_path {
params.set_vad_model_path(Some(path));
params.enable_vad(true);
params.set_vad_params(whisper_rs::WhisperVadParams::default());
tracing::info!("Silero VAD enabled for transcription");
}
params.set_print_special(false);
params.set_print_progress(false);
params.set_print_realtime(false);
params.set_print_timestamps(false);
params
}
pub fn streaming_whisper_params<'a, 'b>() -> whisper_rs::FullParams<'a, 'b> {
let mut params =
whisper_rs::FullParams::new(whisper_rs::SamplingStrategy::Greedy { best_of: 1 });
params.set_temperature(0.0);
params.set_temperature_inc(0.0); params.set_entropy_thold(2.4);
params.set_logprob_thold(-1.0);
params.set_no_speech_thold(0.6);
params.set_suppress_blank(true);
params.set_print_special(false);
params.set_print_progress(false);
params.set_print_realtime(false);
params.set_print_timestamps(false);
params
}
pub fn num_cpus() -> i32 {
std::thread::available_parallelism()
.map(|p| p.get() as i32)
.unwrap_or(4)
.min(8)
}