diff --git a/VoiceInk.xcodeproj/project.pbxproj b/VoiceInk.xcodeproj/project.pbxproj index 7ba5594..cb5c2e7 100644 --- a/VoiceInk.xcodeproj/project.pbxproj +++ b/VoiceInk.xcodeproj/project.pbxproj @@ -488,7 +488,7 @@ ); MACOSX_DEPLOYMENT_TARGET = 14.0; MARKETING_VERSION = 1.69; - PRODUCT_BUNDLE_IDENTIFIER = "--com.jakeshore.VoiceInk-com.jakeshore.VoiceInk"; + PRODUCT_BUNDLE_IDENTIFIER = "com.jakeshore.VoiceInk"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG ENABLE_NATIVE_SPEECH_ANALYZER $(inherited)"; SWIFT_EMIT_LOC_STRINGS = YES; @@ -525,7 +525,7 @@ ); MACOSX_DEPLOYMENT_TARGET = 14.0; MARKETING_VERSION = 1.69; - PRODUCT_BUNDLE_IDENTIFIER = "--com.jakeshore.VoiceInk-com.jakeshore.VoiceInk"; + PRODUCT_BUNDLE_IDENTIFIER = "com.jakeshore.VoiceInk"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "ENABLE_NATIVE_SPEECH_ANALYZER $(inherited)"; SWIFT_EMIT_LOC_STRINGS = YES; diff --git a/VoiceInk/Services/ParakeetTranscriptionService.swift b/VoiceInk/Services/ParakeetTranscriptionService.swift index ada1a31..b06abff 100644 --- a/VoiceInk/Services/ParakeetTranscriptionService.swift +++ b/VoiceInk/Services/ParakeetTranscriptionService.swift @@ -141,7 +141,7 @@ class ParakeetTranscriptionService: TranscriptionService { for: .applicationSupportDirectory, in: .userDomainMask ).first! let appDirectory = applicationSupportURL.appendingPathComponent("FluidAudio", isDirectory: true) - return appDirectory.appendingPathComponent("Models/parakeet-eou-streaming/160ms", isDirectory: true) + return appDirectory.appendingPathComponent("Models/parakeet-eou-streaming/320ms", isDirectory: true) } /// Downloads EOU models if not already present @@ -150,10 +150,10 @@ class ParakeetTranscriptionService: TranscriptionService { let encoderPath = modelsDir.appendingPathComponent("streaming_encoder.mlmodelc") if !FileManager.default.fileExists(atPath: encoderPath.path) { - logger.notice("🎙️ Downloading Parakeet EOU 160ms models for streaming preview...") + logger.notice("🎙️ Downloading Parakeet EOU 320ms models for streaming preview...") let baseDir = modelsDir.deletingLastPathComponent().deletingLastPathComponent() - try await DownloadUtils.downloadRepo(.parakeetEou160, to: baseDir) - logger.notice("🎙️ EOU 160ms models downloaded successfully") + try await DownloadUtils.downloadRepo(.parakeetEou320, to: baseDir) + logger.notice("🎙️ EOU 320ms models downloaded successfully") } return modelsDir @@ -172,10 +172,10 @@ class ParakeetTranscriptionService: TranscriptionService { // Download EOU models if needed let modelsDir = try await ensureEouModelsDownloaded() - // Create StreamingEouAsrManager with 160ms chunks for lowest latency preview - // In HYBRID mode: streaming is just for visual feedback, batch provides accuracy + // Create StreamingEouAsrManager with 320ms chunks for accuracy + // In HYBRID mode: streaming provides visual feedback, batch provides final accuracy // EOU debounce of 1280ms means end-of-utterance detection after ~1.3s of silence - let manager = StreamingEouAsrManager(chunkSize: .ms160, eouDebounceMs: 1280) + let manager = StreamingEouAsrManager(chunkSize: .ms320, eouDebounceMs: 1280) streamingEouManager = manager // Load Parakeet EOU models