Path: blob/master/examples/rust-example/src/main.rs
1171 views
mod silero;1mod utils;2mod vad_iter;34fn main() {5let model_path = std::env::var("SILERO_MODEL_PATH")6.unwrap_or_else(|_| String::from("../../files/silero_vad.onnx"));7let audio_path = std::env::args()8.nth(1)9.unwrap_or_else(|| String::from("recorder.wav"));10let mut wav_reader = hound::WavReader::open(audio_path).unwrap();11let sample_rate = match wav_reader.spec().sample_rate {128000 => utils::SampleRate::EightkHz,1316000 => utils::SampleRate::SixteenkHz,14_ => panic!("Unsupported sample rate. Expect 8 kHz or 16 kHz."),15};16if wav_reader.spec().sample_format != hound::SampleFormat::Int {17panic!("Unsupported sample format. Expect Int.");18}19let content = wav_reader20.samples()21.filter_map(|x| x.ok())22.collect::<Vec<i16>>();23assert!(!content.is_empty());24let silero = silero::Silero::new(sample_rate, model_path).unwrap();25let vad_params = utils::VadParams {26sample_rate: sample_rate.into(),27..Default::default()28};29let mut vad_iterator = vad_iter::VadIter::new(silero, vad_params);30vad_iterator.process(&content).unwrap();31for timestamp in vad_iterator.speeches() {32println!("{}", timestamp);33}34println!("Finished.");35}363738