Changed convert_stereo_to_mono_audio to return a Result

This commit is contained in:
James Bruska 2023-03-27 11:49:13 -04:00
parent 30ff41989b
commit d8271e31d0
3 changed files with 43 additions and 17 deletions

View file

@ -7,7 +7,7 @@ use std::io::Write;
use whisper_rs::{FullParams, SamplingStrategy, WhisperContext};
/// Loads a context and model, processes an audio file, and prints the resulting transcript to stdout.
fn main() {
fn main() -> Result<(), &'static str> {
// Load a context and model.
let mut ctx = WhisperContext::new("example/path/to/model/whisper.cpp/models/ggml-base.en.bin")
.expect("failed to load model");
@ -52,7 +52,7 @@ fn main() {
// These utilities are provided for convenience, but can be replaced with custom conversion logic.
// SIMD variants of these functions are also available on nightly Rust (see the docs).
if channels == 2 {
audio = whisper_rs::convert_stereo_to_mono_audio(&audio);
audio = whisper_rs::convert_stereo_to_mono_audio(&audio)?;
} else if channels != 1 {
panic!(">2 channels unsupported");
}
@ -85,4 +85,5 @@ fn main() {
file.write_all(line.as_bytes())
.expect("failed to write to file");
}
Ok(())
}

View file

@ -5,7 +5,7 @@ use whisper_rs::{FullParams, SamplingStrategy, WhisperContext};
// note that running this example will not do anything, as it is just a
// demonstration of how to use the library, and actual usage requires
// more dependencies than the base library.
pub fn usage() {
pub fn usage() -> Result<(), &'static str> {
// load a context and model
let mut ctx = WhisperContext::new("path/to/model").expect("failed to load model");
@ -38,7 +38,7 @@ pub fn usage() {
// SIMD variants of these functions are also available, but only on nightly Rust: see the docs
let audio_data = whisper_rs::convert_stereo_to_mono_audio(
&whisper_rs::convert_integer_to_float_audio(&audio_data),
);
)?;
// now we can run the model
ctx.full(params, &audio_data[..])
@ -52,6 +52,8 @@ pub fn usage() {
let end_timestamp = ctx.full_get_segment_t1(i);
println!("[{} - {}]: {}", start_timestamp, end_timestamp, segment);
}
Ok(())
}
fn main() {