From: jettoblack Date: Tue, 29 Oct 2024 06:47:21 +0000 (-0400) Subject: whisper : move new-segment callback after DTW step (#2515) X-Git-Tag: upstream/1.7.4~316 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=1626b73b035ff9aa2b8d6d7bc9eccfdcd783be24;p=pkg%2Fggml%2Fsources%2Fwhisper.cpp whisper : move new-segment callback after DTW step (#2515) --- diff --git a/src/whisper.cpp b/src/whisper.cpp index 834f09a2..8238554a 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -6198,7 +6198,7 @@ int whisper_full_with_state( n_new = whisper_wrap_segment(*ctx, *state, params.max_len, params.split_on_word); } } - if (params.new_segment_callback) { + if (params.new_segment_callback && !ctx->params.dtw_token_timestamps) { params.new_segment_callback(ctx, state, n_new, params.new_segment_callback_user_data); } } @@ -6243,7 +6243,7 @@ int whisper_full_with_state( n_new = whisper_wrap_segment(*ctx, *state, params.max_len, params.split_on_word); } } - if (params.new_segment_callback) { + if (params.new_segment_callback && !ctx->params.dtw_token_timestamps) { params.new_segment_callback(ctx, state, n_new, params.new_segment_callback_user_data); } } @@ -6257,6 +6257,11 @@ int whisper_full_with_state( const int n_frames = std::min(std::min(WHISPER_CHUNK_SIZE * 100, seek_delta), seek_end - seek); whisper_exp_compute_token_level_timestamps_dtw( ctx, state, params, result_all.size() - n_segments, n_segments, seek, n_frames, 7, params.n_threads); + if (params.new_segment_callback) { + for (int seg = (int) result_all.size() - n_segments; seg < n_segments; seg++) { + params.new_segment_callback(ctx, state, seg, params.new_segment_callback_user_data); + } + } } }