From e7468c2949107407fe8541a9356cd3b0716c8d14 Mon Sep 17 00:00:00 2001 From: Andreas Lubbe Date: Tue, 9 Sep 2025 08:59:26 +0200 Subject: [PATCH] Refactoring for readability --- .../ggerganov/whispercpp/params/WhisperFullParams.java | 2 +- src/whisper.cpp | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/bindings/java/src/main/java/io/github/ggerganov/whispercpp/params/WhisperFullParams.java b/bindings/java/src/main/java/io/github/ggerganov/whispercpp/params/WhisperFullParams.java index 2decd5a2..76ce80fb 100644 --- a/bindings/java/src/main/java/io/github/ggerganov/whispercpp/params/WhisperFullParams.java +++ b/bindings/java/src/main/java/io/github/ggerganov/whispercpp/params/WhisperFullParams.java @@ -333,7 +333,7 @@ public class WhisperFullParams extends Structure { @Override protected List getFieldOrder() { - return Arrays.asList("strategy", "n_threads", "n_max_text_ctx", + return Arrays.asList("strategy", "n_threads", "n_max_text_ctx", "offset_ms", "duration_ms", "translate", "no_context", "no_timestamps", "single_segment", "print_special", "print_progress", "print_realtime", "print_timestamps", diff --git a/src/whisper.cpp b/src/whisper.cpp index 6e402bb0..179df2a4 100644 --- a/src/whisper.cpp +++ b/src/whisper.cpp @@ -7093,8 +7093,12 @@ int whisper_full_with_state( prompt.clear(); // if we have already generated some text, use it as a prompt to condition the next generation - if (( (!prompt_past.empty()) || (params.carry_initial_prompt && !initial_prompt_tokens.empty() && !first_iter_with_prompt) ) - && t_cur < 0.5f && params.n_max_text_ctx > 0) { + const bool has_past_text = !prompt_past.empty(); + const bool carrying_initial_prompt_now = params.carry_initial_prompt && !initial_prompt_tokens.empty() && !first_iter_with_prompt; + // We only condition on previous text at lower temperatures and when a context limit is set + const bool allow_conditioning = (t_cur < 0.5f) && (params.n_max_text_ctx > 0); + + if ((has_past_text || carrying_initial_prompt_now) && allow_conditioning) { int max_ctx_half = std::min(params.n_max_text_ctx, whisper_n_text_ctx(ctx)/2); prompt = { whisper_token_prev(ctx) }; if (params.carry_initial_prompt) {