From b10d75199e60acf8826bb8cb98a02002dabbebf0 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Sun, 20 Nov 2022 20:45:10 +0200 Subject: [PATCH] stream : add "single_segment" option Force the entire audio chunk to be transcribed into a single segment --- examples/stream/stream.cpp | 1 + whisper.cpp | 10 ++++++---- whisper.h | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/examples/stream/stream.cpp b/examples/stream/stream.cpp index 3c2f861..d2db0b8 100644 --- a/examples/stream/stream.cpp +++ b/examples/stream/stream.cpp @@ -328,6 +328,7 @@ int main(int argc, char ** argv) { wparams.print_timestamps = !params.no_timestamps; wparams.translate = params.translate; wparams.no_context = params.no_context; + wparams.single_segment = true; wparams.language = params.language.c_str(); wparams.n_threads = params.n_threads; diff --git a/whisper.cpp b/whisper.cpp index 24e7cfb..6e3bd0c 100644 --- a/whisper.cpp +++ b/whisper.cpp @@ -2386,6 +2386,7 @@ struct whisper_full_params whisper_full_default_params(enum whisper_sampling_str /*.translate =*/ false, /*.no_context =*/ false, + /*.single_segment =*/ false, /*.print_special_tokens =*/ false, /*.print_progress =*/ true, /*.print_realtime =*/ false, @@ -2426,6 +2427,7 @@ struct whisper_full_params whisper_full_default_params(enum whisper_sampling_str /*.translate =*/ false, /*.no_context =*/ false, + /*.single_segment =*/ false, /*.print_special_tokens =*/ false, /*.print_progress =*/ true, /*.print_realtime =*/ false, @@ -2687,10 +2689,10 @@ int whisper_full( } } - // TODO: TMP TO MAKE STREAM WORK ON RPI4 === - result_len = i + 1; - seek_delta = 100*WHISPER_CHUNK_SIZE; - // ========================================= + if (params.single_segment) { + result_len = i + 1; + seek_delta = 100*WHISPER_CHUNK_SIZE; + } break; } diff --git a/whisper.h b/whisper.h index 769ae64..ec4b1fb 100644 --- a/whisper.h +++ b/whisper.h @@ -194,6 +194,7 @@ extern "C" { bool translate; bool no_context; + bool single_segment; // force single segment output (useful for streaming) bool print_special_tokens; bool print_progress; bool print_realtime;