Merge branch 'master' into cmake-change-build-type

This commit is contained in:
Niko 2024-01-04 03:40:37 +00:00 committed by GitHub
commit 134067b112
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 0 deletions

View file

@ -39,6 +39,8 @@ pub enum WhisperError {
InvalidText,
/// Creating a state pointer failed. Check stderr for more information.
FailedToCreateState,
/// No samples were provided.
NoSamples,
}
impl From<Utf8Error> for WhisperError {
@ -106,6 +108,7 @@ impl std::fmt::Display for WhisperError {
"Generic whisper error. Varies depending on the function. Error code: {}",
c_int
),
NoSamples => write!(f, "Input sample buffer was empty."),
}
}
}

View file

@ -327,6 +327,11 @@ impl<'a> WhisperState<'a> {
/// # C++ equivalent
/// `int whisper_full(struct whisper_context * ctx, struct whisper_full_params params, const float * samples, int n_samples)`
pub fn full(&mut self, params: FullParams, data: &[f32]) -> Result<c_int, WhisperError> {
if data.is_empty() {
// can randomly trigger segmentation faults if we don't check this
return Err(WhisperError::NoSamples);
}
let ret = unsafe {
whisper_rs_sys::whisper_full_with_state(
self.ctx,