]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commitdiff
whisper : move new-segment callback after DTW step (#2515)
authorjettoblack <redacted>
Tue, 29 Oct 2024 06:47:21 +0000 (02:47 -0400)
committerGitHub <redacted>
Tue, 29 Oct 2024 06:47:21 +0000 (08:47 +0200)
src/whisper.cpp

index 834f09a253932f9d557589bfa8f55d683e18dfe8..8238554a63c7beacb9c4163b9c8ba6a9dc1b9e35 100644 (file)
@@ -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);
+                        }
+                    }
                 }
             }