Spaces:
Sleeping
Sleeping
try to fix slice range issue
Browse files- src/whisper.rs +4 -1
src/whisper.rs
CHANGED
@@ -17,7 +17,7 @@ use crate::{config::WhisperConfig, group::GroupedWithin};
|
|
17 |
|
18 |
static WHISPER_CONTEXT: Lazy<WhisperContext> = Lazy::new(|| {
|
19 |
let settings = Settings::new().expect("Failed to initialize settings.");
|
20 |
-
if tracing::enabled!(tracing::Level::
|
21 |
let info = print_system_info();
|
22 |
debug!("system_info: n_threads = {} / {} | {}\n",
|
23 |
settings.whisper.params.n_threads.unwrap_or(0),
|
@@ -306,6 +306,9 @@ impl Detector {
|
|
306 |
};
|
307 |
let drop_offset: usize =
|
308 |
last.end_timestamp as usize / 1000 * WHISPER_SAMPLE_RATE as usize - self.offset;
|
|
|
|
|
|
|
309 |
let len_to_drain = self.pcm_f32.drain(0..drop_offset).len();
|
310 |
self.offset += len_to_drain;
|
311 |
|
|
|
17 |
|
18 |
static WHISPER_CONTEXT: Lazy<WhisperContext> = Lazy::new(|| {
|
19 |
let settings = Settings::new().expect("Failed to initialize settings.");
|
20 |
+
if tracing::enabled!(tracing::Level::DEBUG) {
|
21 |
let info = print_system_info();
|
22 |
debug!("system_info: n_threads = {} / {} | {}\n",
|
23 |
settings.whisper.params.n_threads.unwrap_or(0),
|
|
|
306 |
};
|
307 |
let drop_offset: usize =
|
308 |
last.end_timestamp as usize / 1000 * WHISPER_SAMPLE_RATE as usize - self.offset;
|
309 |
+
if drop_offset > self.pcm_f32.len() {
|
310 |
+
return; // Arithmetic overflow
|
311 |
+
}
|
312 |
let len_to_drain = self.pcm_f32.drain(0..drop_offset).len();
|
313 |
self.offset += len_to_drain;
|
314 |
|