Skip to content

Commit 9ce1648

Browse files
committed
Update whisper.cpp to latest version, use new progress callback
1 parent 92af8ea commit 9ce1648

File tree

2 files changed

+11
-12
lines changed

2 files changed

+11
-12
lines changed

Sources/SwiftWhisper/Whisper.swift

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public class Whisper {
4040
self.unmanagedSelf = unmanagedSelf
4141
params.new_segment_callback_user_data = unmanagedSelf.toOpaque()
4242
params.encoder_begin_callback_user_data = unmanagedSelf.toOpaque()
43+
params.progress_callback_user_data = unmanagedSelf.toOpaque()
4344

4445
// swiftlint:disable line_length
4546
params.new_segment_callback = { (ctx: OpaquePointer?, _: OpaquePointer?, newSegmentCount: Int32, userData: UnsafeMutableRawPointer?) in
@@ -66,17 +67,6 @@ public class Whisper {
6667
))
6768
}
6869

69-
if let frameCount = whisper.frameCount,
70-
let lastSegmentTime = newSegments.last?.endTime {
71-
72-
let fileLength = Double(frameCount * 1000) / Double(WHISPER_SAMPLE_RATE)
73-
let progress = Double(lastSegmentTime) / Double(fileLength)
74-
75-
DispatchQueue.main.async {
76-
delegate.whisper(whisper, didUpdateProgress: progress)
77-
}
78-
}
79-
8070
DispatchQueue.main.async {
8171
delegate.whisper(whisper, didProcessNewSegments: newSegments, atIndex: Int(startIndex))
8272
}
@@ -92,6 +82,15 @@ public class Whisper {
9282

9383
return true
9484
}
85+
86+
params.progress_callback = { (_: OpaquePointer?, _: OpaquePointer?, progress: Int32, userData: UnsafeMutableRawPointer?) in
87+
guard let userData else { return }
88+
let whisper = Unmanaged<Whisper>.fromOpaque(userData).takeUnretainedValue()
89+
90+
DispatchQueue.main.async {
91+
whisper.delegate?.whisper(whisper, didUpdateProgress: Double(progress) / 100)
92+
}
93+
}
9594
}
9695

9796
private func cleanupCallbacks() {

whisper.cpp

0 commit comments

Comments
 (0)