wasm-friendly args

master
Bel LaPointe 2023-12-20 06:47:25 -05:00
parent da60e92a8b
commit 6502402fca
1 changed files with 23 additions and 5 deletions

View File

@ -2,16 +2,34 @@ use wasm_bindgen::prelude::*;
use rust_whisper_lib;
use rust_whisper_baked_lib;
#[wasm_bindgen]
extern {
pub fn whisper_on_success(s: String);
pub fn whisper_on_error(s: String);
}
#[wasm_bindgen]
pub fn listen(
flags: rust_whisper_lib::Flags,
on_success: fn(String),
on_error: fn(String),
stream_step: Option<u64>,
stream_retain: Option<f32>,
stream_head: Option<f32>,
stream_tail: Option<f32>,
) {
let flags = rust_whisper_lib::Flags {
model_path: None,
model_buffer: None,
threads: 4,
stream_step: stream_step.unwrap_or(5),
stream_retain: stream_retain.unwrap_or(1.0),
stream_head: stream_head.unwrap_or(0.5),
stream_tail: stream_tail.unwrap_or(0.5),
wav: None,
debug: false,
};
rust_whisper_baked_lib::main(flags, |result| {
match result {
Ok(msg) => on_success(msg.to_string()),
Err(msg) => on_error(msg),
Ok(msg) => whisper_on_success(msg.to_string()),
Err(msg) => whisper_on_error(msg),
};
});
}