diff --git a/VoiceInk/Services/AudioFileTranscriptionManager.swift b/VoiceInk/Services/AudioFileTranscriptionManager.swift index aff0bca..4d15c1d 100644 --- a/VoiceInk/Services/AudioFileTranscriptionManager.swift +++ b/VoiceInk/Services/AudioFileTranscriptionManager.swift @@ -20,8 +20,8 @@ class AudioTranscriptionManager: ObservableObject { // Transcription services - will be initialized when needed private var localTranscriptionService: LocalTranscriptionService? - private let cloudTranscriptionService = CloudTranscriptionService() - private let nativeAppleTranscriptionService = NativeAppleTranscriptionService() + private lazy var cloudTranscriptionService = CloudTranscriptionService() + private lazy var nativeAppleTranscriptionService = NativeAppleTranscriptionService() enum ProcessingPhase { case idle diff --git a/VoiceInk/Services/AudioFileTranscriptionService.swift b/VoiceInk/Services/AudioFileTranscriptionService.swift index 5bfb041..54dbe2f 100644 --- a/VoiceInk/Services/AudioFileTranscriptionService.swift +++ b/VoiceInk/Services/AudioFileTranscriptionService.swift @@ -17,8 +17,8 @@ class AudioTranscriptionService: ObservableObject { // Transcription services private let localTranscriptionService: LocalTranscriptionService - private let cloudTranscriptionService = CloudTranscriptionService() - private let nativeAppleTranscriptionService = NativeAppleTranscriptionService() + private lazy var cloudTranscriptionService = CloudTranscriptionService() + private lazy var nativeAppleTranscriptionService = NativeAppleTranscriptionService() enum TranscriptionError: Error { case noAudioFile diff --git a/VoiceInk/Services/CloudTranscription/CloudTranscriptionService.swift b/VoiceInk/Services/CloudTranscription/CloudTranscriptionService.swift index 49785dd..e2cbb68 100644 --- a/VoiceInk/Services/CloudTranscription/CloudTranscriptionService.swift +++ b/VoiceInk/Services/CloudTranscription/CloudTranscriptionService.swift @@ -35,10 +35,10 @@ enum CloudTranscriptionError: Error, LocalizedError { class CloudTranscriptionService: TranscriptionService { - private let groqService = GroqTranscriptionService() - private let elevenLabsService = ElevenLabsTranscriptionService() - private let deepgramService = DeepgramTranscriptionService() - private let openAICompatibleService = OpenAICompatibleTranscriptionService() + private lazy var groqService = GroqTranscriptionService() + private lazy var elevenLabsService = ElevenLabsTranscriptionService() + private lazy var deepgramService = DeepgramTranscriptionService() + private lazy var openAICompatibleService = OpenAICompatibleTranscriptionService() func transcribe(audioURL: URL, model: any TranscriptionModel) async throws -> String { switch model.provider { diff --git a/VoiceInk/Whisper/WhisperState.swift b/VoiceInk/Whisper/WhisperState.swift index b83ebf6..ea8434e 100644 --- a/VoiceInk/Whisper/WhisperState.swift +++ b/VoiceInk/Whisper/WhisperState.swift @@ -58,8 +58,8 @@ class WhisperState: NSObject, ObservableObject, AVAudioRecorderDelegate { // Transcription Services private var localTranscriptionService: LocalTranscriptionService! - private let cloudTranscriptionService = CloudTranscriptionService() - private let nativeAppleTranscriptionService = NativeAppleTranscriptionService() + private lazy var cloudTranscriptionService = CloudTranscriptionService() + private lazy var nativeAppleTranscriptionService = NativeAppleTranscriptionService() private var modelUrl: URL? { let possibleURLs = [