Spaces:
Running
Running
whisper : move new-segment callback after DTW step (#2515)
Browse files- 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 |
|