Debug transcription

This commit is contained in:
Kylmakalle 2025-06-29 18:03:32 +03:00
parent a2e9b4ba36
commit f94a9f27ff
2 changed files with 13 additions and 2 deletions

View File

@ -1,5 +1,9 @@
load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
sgdeps = [
"//Swiftgram/SGLogging:SGLogging"
]
swift_library( swift_library(
name = "LocalAudioTranscription", name = "LocalAudioTranscription",
module_name = "LocalAudioTranscription", module_name = "LocalAudioTranscription",
@ -9,7 +13,7 @@ swift_library(
copts = [ copts = [
"-warnings-as-errors", "-warnings-as-errors",
], ],
deps = [ deps = sgdeps +[
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",
], ],
visibility = [ visibility = [

View File

@ -1,3 +1,4 @@
import SGLogging
import Foundation import Foundation
import SwiftSignalKit import SwiftSignalKit
import Speech import Speech
@ -20,12 +21,15 @@ private func transcribeAudio(path: String, locale: String) -> Signal<Transcripti
Queue.mainQueue().async { Queue.mainQueue().async {
switch status { switch status {
case .notDetermined: case .notDetermined:
SGLogger.shared.log("LocalTranscription", "Authorization status: notDetermined")
subscriber.putNext(nil) subscriber.putNext(nil)
subscriber.putCompletion() subscriber.putCompletion()
case .restricted: case .restricted:
SGLogger.shared.log("LocalTranscription", "Authorization status: restricted")
subscriber.putNext(nil) subscriber.putNext(nil)
subscriber.putCompletion() subscriber.putCompletion()
case .denied: case .denied:
SGLogger.shared.log("LocalTranscription", "Authorization status: denied")
subscriber.putNext(nil) subscriber.putNext(nil)
subscriber.putCompletion() subscriber.putCompletion()
case .authorized: case .authorized:
@ -34,6 +38,7 @@ private func transcribeAudio(path: String, locale: String) -> Signal<Transcripti
speechRecognizer = sharedRecognizer speechRecognizer = sharedRecognizer
} else { } else {
guard let speechRecognizerValue = SFSpeechRecognizer(locale: Locale(identifier: locale)), speechRecognizerValue.isAvailable else { guard let speechRecognizerValue = SFSpeechRecognizer(locale: Locale(identifier: locale)), speechRecognizerValue.isAvailable else {
SGLogger.shared.log("LocalTranscription", "Recognizer not available for locale: \(locale)")
subscriber.putNext(nil) subscriber.putNext(nil)
subscriber.putCompletion() subscriber.putCompletion()
@ -75,7 +80,7 @@ private func transcribeAudio(path: String, locale: String) -> Signal<Transcripti
subscriber.putCompletion() subscriber.putCompletion()
} }
} else { } else {
print("transcribeAudio: locale: \(locale), error: \(String(describing: error))") SGLogger.shared.log("LocalTranscription", "transcribeAudio: locale: \(locale), error: \(String(describing: error))")
subscriber.putNext(nil) subscriber.putNext(nil)
subscriber.putCompletion() subscriber.putCompletion()
@ -86,6 +91,7 @@ private func transcribeAudio(path: String, locale: String) -> Signal<Transcripti
task.cancel() task.cancel()
}) })
@unknown default: @unknown default:
SGLogger.shared.log("LocalTranscription", "Unknown authorization status")
subscriber.putNext(nil) subscriber.putNext(nil)
subscriber.putCompletion() subscriber.putCompletion()
} }
@ -154,6 +160,7 @@ public func transcribeAudio(path: String, appLocale: String) -> Signal<LocallyTr
// Find the locale with the highest accumulated confidence // Find the locale with the highest accumulated confidence
guard let bestLocale = accumulatedTranscription.max(by: { $0.value.confidence < $1.value.confidence }) else { guard let bestLocale = accumulatedTranscription.max(by: { $0.value.confidence < $1.value.confidence }) else {
SGLogger.shared.log("LocalTranscription", "No valid transcription results found")
return nil return nil
} }