jettoblack commited on
Commit
6b8369d
·
unverified ·
1 Parent(s): 403eb98

whisper : move new-segment callback after DTW step (#2515)

Browse files
Files changed (1) hide show
  1. src/whisper.cpp +7 -2
src/whisper.cpp CHANGED
@@ -6198,7 +6198,7 @@ int whisper_full_with_state(
6198
  n_new = whisper_wrap_segment(*ctx, *state, params.max_len, params.split_on_word);
6199
  }
6200
  }
6201
- if (params.new_segment_callback) {
6202
  params.new_segment_callback(ctx, state, n_new, params.new_segment_callback_user_data);
6203
  }
6204
  }
@@ -6243,7 +6243,7 @@ int whisper_full_with_state(
6243
  n_new = whisper_wrap_segment(*ctx, *state, params.max_len, params.split_on_word);
6244
  }
6245
  }
6246
- if (params.new_segment_callback) {
6247
  params.new_segment_callback(ctx, state, n_new, params.new_segment_callback_user_data);
6248
  }
6249
  }
@@ -6257,6 +6257,11 @@ int whisper_full_with_state(
6257
  const int n_frames = std::min(std::min(WHISPER_CHUNK_SIZE * 100, seek_delta), seek_end - seek);
6258
  whisper_exp_compute_token_level_timestamps_dtw(
6259
  ctx, state, params, result_all.size() - n_segments, n_segments, seek, n_frames, 7, params.n_threads);
 
 
 
 
 
6260
  }
6261
  }
6262
 
 
6198
  n_new = whisper_wrap_segment(*ctx, *state, params.max_len, params.split_on_word);
6199
  }
6200
  }
6201
+ if (params.new_segment_callback && !ctx->params.dtw_token_timestamps) {
6202
  params.new_segment_callback(ctx, state, n_new, params.new_segment_callback_user_data);
6203
  }
6204
  }
 
6243
  n_new = whisper_wrap_segment(*ctx, *state, params.max_len, params.split_on_word);
6244
  }
6245
  }
6246
+ if (params.new_segment_callback && !ctx->params.dtw_token_timestamps) {
6247
  params.new_segment_callback(ctx, state, n_new, params.new_segment_callback_user_data);
6248
  }
6249
  }
 
6257
  const int n_frames = std::min(std::min(WHISPER_CHUNK_SIZE * 100, seek_delta), seek_end - seek);
6258
  whisper_exp_compute_token_level_timestamps_dtw(
6259
  ctx, state, params, result_all.size() - n_segments, n_segments, seek, n_frames, 7, params.n_threads);
6260
+ if (params.new_segment_callback) {
6261
+ for (int seg = (int) result_all.size() - n_segments; seg < n_segments; seg++) {
6262
+ params.new_segment_callback(ctx, state, seg, params.new_segment_callback_user_data);
6263
+ }
6264
+ }
6265
  }
6266
  }
6267