From 3d70621a51cbc017d9c09cbafc169ac919d5c69b Mon Sep 17 00:00:00 2001 From: Niko Date: Sat, 2 Aug 2025 19:39:05 -0700 Subject: [PATCH] Fix up `basic_use` example --- examples/basic_use.rs | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/examples/basic_use.rs b/examples/basic_use.rs index 415371e..1868c66 100644 --- a/examples/basic_use.rs +++ b/examples/basic_use.rs @@ -9,10 +9,10 @@ use whisper_rs::{FullParams, SamplingStrategy, WhisperContext, WhisperContextPar fn main() { let model_path = std::env::args() .nth(1) - .expect("Please specify path to model"); + .expect("Please specify path to model as argument 1"); let wav_path = std::env::args() .nth(2) - .expect("Please specify path to wav file"); + .expect("Please specify path to wav file as argument 2"); let language = "en"; let samples: Vec = hound::WavReader::open(wav_path) @@ -27,7 +27,10 @@ fn main() { let mut state = ctx.create_state().expect("failed to create state"); - let mut params = FullParams::new(SamplingStrategy::Greedy { best_of: 1 }); + let mut params = FullParams::new(SamplingStrategy::BeamSearch { + beam_size: 5, + patience: -1.0, + }); // and set the language to translate to to english params.set_language(Some(&language)); @@ -42,7 +45,6 @@ fn main() { // some utilities exist for this // note that you don't need to use these, you can do it yourself or any other way you want // these are just provided for convenience - // SIMD variants of these functions are also available, but only on nightly Rust: see the docs let mut inter_samples = vec![Default::default(); samples.len()]; whisper_rs::convert_integer_to_float_audio(&samples, &mut inter_samples) @@ -51,25 +53,17 @@ fn main() { .expect("failed to convert audio data"); // now we can run the model - // note the key we use here is the one we created above state .full(params, &samples[..]) .expect("failed to run model"); // fetch the results - let num_segments = state - .full_n_segments() - .expect("failed to get number of segments"); - for i in 0..num_segments { - let segment = state - .full_get_segment_text(i) - .expect("failed to get segment"); - let start_timestamp = state - .full_get_segment_t0(i) - .expect("failed to get segment start timestamp"); - let end_timestamp = state - .full_get_segment_t1(i) - .expect("failed to get segment end timestamp"); - println!("[{} - {}]: {}", start_timestamp, end_timestamp, segment); + for segment in state.as_iter() { + println!( + "[{} - {}]: {}", + segment.start_timestamp(), + segment.end_timestamp(), + segment + ); } }