mingyang91 commited on
Commit
e303d11
·
verified ·
1 Parent(s): dac8f9a

try to fix slice range issue

Browse files
Files changed (1) hide show
  1. 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::INFO) {
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