diff --git a/VoiceInk/Services/ParakeetTranscriptionService.swift b/VoiceInk/Services/ParakeetTranscriptionService.swift index ae837fa..8784aa7 100644 --- a/VoiceInk/Services/ParakeetTranscriptionService.swift +++ b/VoiceInk/Services/ParakeetTranscriptionService.swift @@ -71,9 +71,6 @@ class ParakeetTranscriptionService: TranscriptionService { throw ASRError.notInitialized } - // Reset the decoder state before each transcription to ensure no state leaks from previous runs - try await asrManager.resetDecoderState(for: .microphone) - let audioSamples = try readAudioSamples(from: audioURL) // Validate audio data before transcription @@ -84,7 +81,9 @@ class ParakeetTranscriptionService: TranscriptionService { let result = try await asrManager.transcribe(audioSamples) + // Reset decoder state and cleanup after transcription to avoid blocking the transcription start Task { + try? await asrManager.resetDecoderState(for: .microphone) asrManager.cleanup() isModelLoaded = false logger.notice("🦜 Parakeet ASR models cleaned up from memory") diff --git a/VoiceInk/Views/Metrics/MetricsContent.swift b/VoiceInk/Views/Metrics/MetricsContent.swift index 5b87775..80aa977 100644 --- a/VoiceInk/Views/Metrics/MetricsContent.swift +++ b/VoiceInk/Views/Metrics/MetricsContent.swift @@ -51,7 +51,7 @@ struct MetricsContent: View { color: .green ) MetricCard( - title: "WPM", + title: "Average Words/Minute", value: String(format: "%.1f", averageWordsPerMinute), icon: "speedometer", color: .orange