@@ -6198,7 +6198,7 @@ int whisper_full_with_state(
61986198 n_new = whisper_wrap_segment (*ctx, *state, params.max_len , params.split_on_word );
61996199 }
62006200 }
6201- if (params.new_segment_callback ) {
6201+ if (params.new_segment_callback && !ctx-> params . dtw_token_timestamps ) {
62026202 params.new_segment_callback (ctx, state, n_new, params.new_segment_callback_user_data );
62036203 }
62046204 }
@@ -6243,7 +6243,7 @@ int whisper_full_with_state(
62436243 n_new = whisper_wrap_segment (*ctx, *state, params.max_len , params.split_on_word );
62446244 }
62456245 }
6246- if (params.new_segment_callback ) {
6246+ if (params.new_segment_callback && !ctx-> params . dtw_token_timestamps ) {
62476247 params.new_segment_callback (ctx, state, n_new, params.new_segment_callback_user_data );
62486248 }
62496249 }
@@ -6257,6 +6257,11 @@ int whisper_full_with_state(
62576257 const int n_frames = std::min (std::min (WHISPER_CHUNK_SIZE * 100 , seek_delta), seek_end - seek);
62586258 whisper_exp_compute_token_level_timestamps_dtw (
62596259 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+ }
62606265 }
62616266 }
62626267
0 commit comments