From b8ac448252a01db3c5da66a7253632e43a73fa2d Mon Sep 17 00:00:00 2001 From: yuniruyuni Date: Wed, 26 Apr 2023 14:41:57 +0900 Subject: [PATCH 1/4] docs: change sample in readme by using state object --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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); } From af4bacf80bd52c9ef555d4e04ad4bc131f806cbd Mon Sep 17 00:00:00 2001 From: yuniruyuni Date: Wed, 26 Apr 2023 14:46:10 +0900 Subject: [PATCH 2/4] fix: basic_use sample build error --- examples/basic_use.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) 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); } From 8feebfb953611710340075bf3f112e40f4f3a17e Mon Sep 17 00:00:00 2001 From: yuniruyuni Date: Wed, 26 Apr 2023 14:47:15 +0900 Subject: [PATCH 3/4] fix: audio_transcription sample build error --- examples/audio_transcription.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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. From 20c57dc88729f0ee0251745d1b05d20e27c2f246 Mon Sep 17 00:00:00 2001 From: yuniruyuni Date: Wed, 26 Apr 2023 14:48:02 +0900 Subject: [PATCH 4/4] fix: full_usage sample build error --- examples/full_usage/src/main.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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); } }