@@ -6198,7 +6198,7 @@ int whisper_full_with_state(
6198
6198
n_new = whisper_wrap_segment (*ctx, *state, params.max_len , params.split_on_word );
6199
6199
}
6200
6200
}
6201
- if (params.new_segment_callback ) {
6201
+ if (params.new_segment_callback && !ctx-> params . dtw_token_timestamps ) {
6202
6202
params.new_segment_callback (ctx, state, n_new, params.new_segment_callback_user_data );
6203
6203
}
6204
6204
}
@@ -6243,7 +6243,7 @@ int whisper_full_with_state(
6243
6243
n_new = whisper_wrap_segment (*ctx, *state, params.max_len , params.split_on_word );
6244
6244
}
6245
6245
}
6246
- if (params.new_segment_callback ) {
6246
+ if (params.new_segment_callback && !ctx-> params . dtw_token_timestamps ) {
6247
6247
params.new_segment_callback (ctx, state, n_new, params.new_segment_callback_user_data );
6248
6248
}
6249
6249
}
@@ -6257,6 +6257,11 @@ int whisper_full_with_state(
6257
6257
const int n_frames = std::min (std::min (WHISPER_CHUNK_SIZE * 100 , seek_delta), seek_end - seek);
6258
6258
whisper_exp_compute_token_level_timestamps_dtw (
6259
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
+ }
6260
6265
}
6261
6266
}
6262
6267
0 commit comments