]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commitdiff
stream.wasm : fix invalid memory access when no segments (#1902)
authorAndrew S <redacted>
Mon, 26 Feb 2024 08:12:35 +0000 (02:12 -0600)
committerGitHub <redacted>
Mon, 26 Feb 2024 08:12:35 +0000 (10:12 +0200)
No segments may be returned when a smaller sample buffer (EG 2048 samples) is sent to the worker.

examples/stream.wasm/emscripten.cpp

index 71acffba296c59abecd14f1158741f1ff2838b4c..43e71bf23f0ad1292640ef182535051dcd723acd 100644 (file)
@@ -103,11 +103,11 @@ void stream_main(size_t index) {
 
             {
                 const int n_segments = whisper_full_n_segments(ctx);
-                for (int i = n_segments - 1; i < n_segments; ++i) {
-                    const char * text = whisper_full_get_segment_text(ctx, i);
+                if (n_segments > 0) {
+                    const char * text = whisper_full_get_segment_text(ctx, n_segments - 1);
 
-                    const int64_t t0 = whisper_full_get_segment_t0(ctx, i);
-                    const int64_t t1 = whisper_full_get_segment_t1(ctx, i);
+                    const int64_t t0 = whisper_full_get_segment_t0(ctx, n_segments - 1);
+                    const int64_t t1 = whisper_full_get_segment_t1(ctx, n_segments - 1);
 
                     printf("transcribed: %s\n", text);