Unified logging + fluidAudio's logging
This commit is contained in:
parent
cba11cdc55
commit
febd75cc39
@ -10,7 +10,7 @@ class ActiveWindowService: ObservableObject {
|
||||
private var whisperState: WhisperState?
|
||||
|
||||
private let logger = Logger(
|
||||
subsystem: "com.prakashjoshipax.VoiceInk",
|
||||
subsystem: "com.prakashjoshipax.voiceink",
|
||||
category: "browser.detection"
|
||||
)
|
||||
|
||||
|
||||
@ -87,7 +87,7 @@ class BrowserURLService {
|
||||
static let shared = BrowserURLService()
|
||||
|
||||
private let logger = Logger(
|
||||
subsystem: "com.prakashjoshipax.VoiceInk",
|
||||
subsystem: "com.prakashjoshipax.voiceink",
|
||||
category: "browser.applescript"
|
||||
)
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ enum EnhancementPrompt {
|
||||
}
|
||||
|
||||
class AIEnhancementService: ObservableObject {
|
||||
private let logger = Logger(subsystem: "com.voiceink.enhancement", category: "AIEnhancementService")
|
||||
private let logger = Logger(subsystem: "com.prakashjoshipax.voiceink", category: "AIEnhancementService")
|
||||
|
||||
@Published var isEnhancementEnabled: Bool {
|
||||
didSet {
|
||||
|
||||
@ -2,7 +2,7 @@ import Foundation
|
||||
import os
|
||||
|
||||
class DeepgramTranscriptionService {
|
||||
private let logger = Logger(subsystem: "com.voiceink.transcription", category: "DeepgramService")
|
||||
private let logger = Logger(subsystem: "com.prakashjoshipax.voiceink", category: "DeepgramService")
|
||||
|
||||
func transcribe(audioURL: URL, model: any TranscriptionModel) async throws -> String {
|
||||
let config = try getAPIConfig(for: model)
|
||||
|
||||
@ -2,7 +2,7 @@ import Foundation
|
||||
import os
|
||||
|
||||
class GeminiTranscriptionService {
|
||||
private let logger = Logger(subsystem: "com.voiceink.transcription", category: "GeminiService")
|
||||
private let logger = Logger(subsystem: "com.prakashjoshipax.voiceink", category: "GeminiService")
|
||||
|
||||
func transcribe(audioURL: URL, model: any TranscriptionModel) async throws -> String {
|
||||
let config = try getAPIConfig(for: model)
|
||||
|
||||
@ -2,7 +2,7 @@ import Foundation
|
||||
import os
|
||||
|
||||
class GroqTranscriptionService {
|
||||
private let logger = Logger(subsystem: "com.voiceink.transcription", category: "GroqService")
|
||||
private let logger = Logger(subsystem: "com.prakashjoshipax.voiceink", category: "GroqService")
|
||||
|
||||
func transcribe(audioURL: URL, model: any TranscriptionModel) async throws -> String {
|
||||
let config = try getAPIConfig(for: model)
|
||||
|
||||
@ -2,7 +2,7 @@ import Foundation
|
||||
import os
|
||||
|
||||
class OpenAICompatibleTranscriptionService {
|
||||
private let logger = Logger(subsystem: "com.voiceink.transcription", category: "OpenAICompatibleService")
|
||||
private let logger = Logger(subsystem: "com.prakashjoshipax.voiceink", category: "OpenAICompatibleService")
|
||||
|
||||
func transcribe(audioURL: URL, model: CustomCloudModel) async throws -> String {
|
||||
let config = APIConfig(
|
||||
|
||||
@ -8,7 +8,7 @@ class ParakeetTranscriptionService: TranscriptionService {
|
||||
private var asrManager: AsrManager?
|
||||
private var vadManager: VadManager?
|
||||
private let customModelsDirectory: URL?
|
||||
private let logger = Logger(subsystem: "com.voiceink.app", category: "ParakeetTranscriptionService")
|
||||
private let logger = Logger(subsystem: "com.prakashjoshipax.voiceink.parakeet", category: "ParakeetTranscriptionService")
|
||||
|
||||
init(customModelsDirectory: URL? = nil) {
|
||||
self.customModelsDirectory = customModelsDirectory
|
||||
@ -16,20 +16,25 @@ class ParakeetTranscriptionService: TranscriptionService {
|
||||
|
||||
func loadModel() async throws {
|
||||
guard asrManager == nil else {
|
||||
logger.notice("🦜 Parakeet models already loaded, skipping")
|
||||
return
|
||||
}
|
||||
|
||||
guard let customModelsDirectory else {
|
||||
throw ASRError.modelLoadFailed
|
||||
}
|
||||
|
||||
|
||||
let manager = AsrManager(config: .default)
|
||||
let models = try await AsrModels.load(from: customModelsDirectory)
|
||||
try await manager.initialize(models: models)
|
||||
|
||||
self.asrManager = manager
|
||||
logger.notice("🦜 Parakeet ASR models loaded successfully")
|
||||
}
|
||||
let models: AsrModels
|
||||
|
||||
if let customModelsDirectory = customModelsDirectory {
|
||||
models = try await AsrModels.load(from: customModelsDirectory)
|
||||
} else {
|
||||
// Fallback to FluidAudio's default directory
|
||||
logger.notice("🦜 Loading Parakeet models from FluidAudio default directory")
|
||||
models = try await AsrModels.downloadAndLoad()
|
||||
}
|
||||
|
||||
try await manager.initialize(models: models)
|
||||
|
||||
self.asrManager = manager
|
||||
}
|
||||
|
||||
func transcribe(audioURL: URL, model: any TranscriptionModel) async throws -> String {
|
||||
try await loadModel()
|
||||
@ -73,7 +78,7 @@ class ParakeetTranscriptionService: TranscriptionService {
|
||||
}
|
||||
}
|
||||
|
||||
let result = try await asrManager.transcribe(speechAudio, source: .system)
|
||||
let result = try await asrManager.transcribe(speechAudio)
|
||||
|
||||
logger.notice("🦜 Parakeet transcription result: \(result.text)")
|
||||
|
||||
@ -100,10 +105,9 @@ class ParakeetTranscriptionService: TranscriptionService {
|
||||
}
|
||||
}
|
||||
|
||||
func cleanup() {
|
||||
asrManager?.cleanup()
|
||||
asrManager = nil
|
||||
vadManager = nil
|
||||
logger.notice("🦜 Parakeet ASR models cleaned up from memory")
|
||||
func cleanup() {
|
||||
asrManager?.cleanup()
|
||||
asrManager = nil
|
||||
vadManager = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@ import os
|
||||
|
||||
class PromptDetectionService {
|
||||
private let logger = Logger(
|
||||
subsystem: "com.prakashjoshipax.VoiceInk",
|
||||
subsystem: "com.prakashjoshipax.voiceink",
|
||||
category: "promptdetection"
|
||||
)
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ class ScreenCaptureService: ObservableObject {
|
||||
@Published var lastCapturedText: String?
|
||||
|
||||
private let logger = Logger(
|
||||
subsystem: "com.prakashjoshipax.VoiceInk",
|
||||
subsystem: "com.prakashjoshipax.voiceink",
|
||||
category: "aienhancement"
|
||||
)
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ fileprivate typealias WhisperVADSegments = OpaquePointer
|
||||
|
||||
class VoiceActivityDetector {
|
||||
private var vadContext: WhisperVADContext
|
||||
private let logger = Logger(subsystem: "com.voiceink.app", category: "VoiceActivityDetector")
|
||||
private let logger = Logger(subsystem: "com.prakashjoshipax.voiceink", category: "VoiceActivityDetector")
|
||||
|
||||
init?(modelPath: String) {
|
||||
var contextParams = whisper_vad_default_context_params()
|
||||
|
||||
@ -4,6 +4,7 @@ import Sparkle
|
||||
import AppKit
|
||||
import OSLog
|
||||
import AppIntents
|
||||
import FluidAudio
|
||||
|
||||
@main
|
||||
struct VoiceInkApp: App {
|
||||
@ -27,6 +28,9 @@ struct VoiceInkApp: App {
|
||||
private let transcriptionAutoCleanupService = TranscriptionAutoCleanupService.shared
|
||||
|
||||
init() {
|
||||
// Configure FluidAudio logging subsystem
|
||||
AppLogger.defaultSubsystem = "com.prakashjoshipax.voiceink.parakeet"
|
||||
|
||||
do {
|
||||
let schema = Schema([
|
||||
Transcription.self
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user