From 9521ba6801339f587842715b545f76031fd785c9 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Fri, 8 Dec 2023 13:43:37 +0200 Subject: [PATCH] whisper.objc : disable timestamps for real-time transcription --- .../whisper.objc/ViewController.m | 1 + .../whisper.cpp.swift/LibWhisper.swift | 30 +++++++++---------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/examples/whisper.objc/whisper.objc/ViewController.m b/examples/whisper.objc/whisper.objc/ViewController.m index 151b05d9..c376b928 100644 --- a/examples/whisper.objc/whisper.objc/ViewController.m +++ b/examples/whisper.objc/whisper.objc/ViewController.m @@ -206,6 +206,7 @@ void AudioInputCallback(void * inUserData, params.offset_ms = 0; params.no_context = true; params.single_segment = self->stateInp.isRealtime; + params.no_timestamps = params.single_segment; CFTimeInterval startTime = CACurrentMediaTime(); diff --git a/examples/whisper.swiftui/whisper.cpp.swift/LibWhisper.swift b/examples/whisper.swiftui/whisper.cpp.swift/LibWhisper.swift index 84559c9a..a71175d9 100644 --- a/examples/whisper.swiftui/whisper.cpp.swift/LibWhisper.swift +++ b/examples/whisper.swiftui/whisper.cpp.swift/LibWhisper.swift @@ -8,15 +8,15 @@ enum WhisperError: Error { // Meet Whisper C++ constraint: Don't access from more than one thread at a time. actor WhisperContext { private var context: OpaquePointer - + init(context: OpaquePointer) { self.context = context } - + deinit { whisper_free(context) } - + func fullTranscribe(samples: [Float]) { // Leave 2 processors free (i.e. the high-efficiency cores). let maxThreads = max(1, min(8, cpuCount() - 2)) @@ -24,17 +24,17 @@ actor WhisperContext { var params = whisper_full_default_params(WHISPER_SAMPLING_GREEDY) "en".withCString { en in // Adapted from whisper.objc - params.print_realtime = true - params.print_progress = false + params.print_realtime = true + params.print_progress = false params.print_timestamps = true - params.print_special = false - params.translate = false - params.language = en - params.n_threads = Int32(maxThreads) - params.offset_ms = 0 - params.no_context = true - params.single_segment = false - + params.print_special = false + params.translate = false + params.language = en + params.n_threads = Int32(maxThreads) + params.offset_ms = 0 + params.no_context = true + params.single_segment = false + whisper_reset_timings(context) print("About to run whisper_full") samples.withUnsafeBufferPointer { samples in @@ -46,7 +46,7 @@ actor WhisperContext { } } } - + func getTranscription() -> String { var transcription = "" for i in 0.. WhisperContext { var params = whisper_context_default_params() #if targetEnvironment(simulator)