diff --git a/README.md b/README.md index b34ef9b..d9c5d3c 100644 --- a/README.md +++ b/README.md @@ -18,23 +18,23 @@ fn main() { let audio_data = vec![0_f32; 16000 * 2]; // now we can run the model - ctx.create_key(()).expect("failed to create key"); - ctx.full(&(), params, &audio_data[..]) + let state = ctx.create_state().expect("failed to create state"); + ctx.full(&state, params, &audio_data[..]) .expect("failed to run model"); // fetch the results let num_segments = ctx - .full_n_segments(&()) + .full_n_segments(&state) .expect("failed to get number of segments"); for i in 0..num_segments { let segment = ctx - .full_get_segment_text(&(), i) + .full_get_segment_text(&state, i) .expect("failed to get segment"); let start_timestamp = ctx - .full_get_segment_t0(&(), i) + .full_get_segment_t0(&state, i) .expect("failed to get segment start timestamp"); let end_timestamp = ctx - .full_get_segment_t1(&(), i) + .full_get_segment_t1(&state, i) .expect("failed to get segment end timestamp"); println!("[{} - {}]: {}", start_timestamp, end_timestamp, segment); } diff --git a/examples/audio_transcription.rs b/examples/audio_transcription.rs index e389723..aa6b54c 100644 --- a/examples/audio_transcription.rs +++ b/examples/audio_transcription.rs @@ -11,8 +11,8 @@ fn main() -> Result<(), &'static str> { // Load a context and model. let ctx = WhisperContext::new("example/path/to/model/whisper.cpp/models/ggml-base.en.bin") .expect("failed to load model"); - // Create a single global key. - ctx.create_key(()).expect("failed to create key"); + // Create a state + let state = ctx.create_state().expect("failed to create key"); // Create a params object for running the model. // The number of past samples to consider defaults to 0. @@ -63,7 +63,7 @@ fn main() -> Result<(), &'static str> { } // Run the model. - ctx.full(&(), params, &audio[..]) + ctx.full(&state, params, &audio[..]) .expect("failed to run model"); // Create a file to write the transcript to. @@ -71,18 +71,18 @@ fn main() -> Result<(), &'static str> { // Iterate through the segments of the transcript. let num_segments = ctx - .full_n_segments(&()) + .full_n_segments(&state) .expect("failed to get number of segments"); for i in 0..num_segments { // Get the transcribed text and timestamps for the current segment. let segment = ctx - .full_get_segment_text(&(), i) + .full_get_segment_text(&state, i) .expect("failed to get segment"); let start_timestamp = ctx - .full_get_segment_t0(&(), i) + .full_get_segment_t0(&state, i) .expect("failed to get start timestamp"); let end_timestamp = ctx - .full_get_segment_t1(&(), i) + .full_get_segment_t1(&state, i) .expect("failed to get end timestamp"); // Print the segment to stdout. diff --git a/examples/basic_use.rs b/examples/basic_use.rs index 435320a..18d72db 100644 --- a/examples/basic_use.rs +++ b/examples/basic_use.rs @@ -8,9 +8,8 @@ use whisper_rs::{FullParams, SamplingStrategy, WhisperContext}; pub fn usage() -> Result<(), &'static str> { // load a context and model let ctx = WhisperContext::new("path/to/model").expect("failed to load model"); - // make a sample key - // here, since we only use this model once, we use a unique global key - ctx.create_key(()).expect("failed to create key"); + // make a state + let state = ctx.create_state().expect("failed to create state"); // create a params object // note that currently the only implemented strategy is Greedy, BeamSearch is a WIP @@ -45,22 +44,22 @@ pub fn usage() -> Result<(), &'static str> { // now we can run the model // note the key we use here is the one we created above - ctx.full(&(), params, &audio_data[..]) + ctx.full(&state, params, &audio_data[..]) .expect("failed to run model"); // fetch the results let num_segments = ctx - .full_n_segments(&()) + .full_n_segments(&state) .expect("failed to get number of segments"); for i in 0..num_segments { let segment = ctx - .full_get_segment_text(&(), i) + .full_get_segment_text(&state, i) .expect("failed to get segment"); let start_timestamp = ctx - .full_get_segment_t0(&(), i) + .full_get_segment_t0(&state, i) .expect("failed to get segment start timestamp"); let end_timestamp = ctx - .full_get_segment_t1(&(), i) + .full_get_segment_t1(&state, i) .expect("failed to get segment end timestamp"); println!("[{} - {}]: {}", start_timestamp, end_timestamp, segment); } diff --git a/examples/full_usage/src/main.rs b/examples/full_usage/src/main.rs index fa73a92..69a3f7b 100644 --- a/examples/full_usage/src/main.rs +++ b/examples/full_usage/src/main.rs @@ -47,17 +47,17 @@ fn main() { let ctx = WhisperContext::new(&whisper_path.to_string_lossy()).expect("failed to open model"); - ctx.create_key(()).expect("failed to create key"); + let state = ctx.create_state().expect("failed to create key"); let params = FullParams::new(SamplingStrategy::default()); - ctx.full(&(), params, &samples) + ctx.full(&state, params, &samples) .expect("failed to convert samples"); - let num_segments = ctx.full_n_segments(&()).expect("failed to get number of segments"); + let num_segments = ctx.full_n_segments(&state).expect("failed to get number of segments"); for i in 0..num_segments { - let segment = ctx.full_get_segment_text(&(), i).expect("failed to get segment"); - let start_timestamp = ctx.full_get_segment_t0(&(), i).expect("failed to get start timestamp"); - let end_timestamp = ctx.full_get_segment_t1(&(), i).expect("failed to get end timestamp"); + let segment = ctx.full_get_segment_text(&state, i).expect("failed to get segment"); + let start_timestamp = ctx.full_get_segment_t0(&state, i).expect("failed to get start timestamp"); + let end_timestamp = ctx.full_get_segment_t1(&state, i).expect("failed to get end timestamp"); println!("[{} - {}]: {}", start_timestamp, end_timestamp, segment); } }