From 4dd7119debb3158a035af304d75482cd638a1830 Mon Sep 17 00:00:00 2001 From: boolemancer <48014766+boolemancer@users.noreply.github.com> Date: Tue, 7 Feb 2023 22:43:23 -0800 Subject: [PATCH] whisper : only trim if split_on_word is true (#476) --- whisper.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/whisper.cpp b/whisper.cpp index aedd343..35d42f8 100644 --- a/whisper.cpp +++ b/whisper.cpp @@ -3014,8 +3014,7 @@ static inline void trim(std::string &s) { static inline bool should_split_on_word(const char * txt, bool split_on_word) { if (!split_on_word) return true; - std::string s = txt; - return s.substr(0, 1) == " "; + return txt[0] == ' '; } // wrap the last segment to max_len characters @@ -3039,7 +3038,10 @@ static int whisper_wrap_segment(struct whisper_context & ctx, int max_len, bool if (acc + cur > max_len && i > 0 && should_split_on_word(txt, split_on_word)) { // split here - trim(text); + if (split_on_word) { + trim(text); + } + ctx.result_all.back().text = std::move(text); ctx.result_all.back().t1 = token.t0; ctx.result_all.back().tokens.resize(i); @@ -3067,7 +3069,9 @@ static int whisper_wrap_segment(struct whisper_context & ctx, int max_len, bool } } - trim(text); + if (split_on_word) { + trim(text); + } ctx.result_all.back().text = std::move(text); return res;